為什麼這篇矩陣相乘3x3鄉民發文收入到精華區:因為在矩陣相乘3x3這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者lpr2311 (lpr2311)看板C_and_CPP標題[問題] 新手寫3*3矩陣相乘時間S...
遇到的問題: (題意請描述清楚)
這是我的程式碼 http://paste.pocoo.org/show/205520/
我是依照 http://0rz.tw/f83or 裡面的 係數-向量方法 來計算3*3矩陣相乘
可是卻無法跑出我想要的結果 想麻煩各位幫忙看一下是哪理出了差錯
感謝!
希望得到的正確結果:
30 24 18
84 69 54
138 144 90
程式跑出來的錯誤結果:
69
87
-858993409
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Visual C++ 2008
補充說明:
剛有爬了一下文 不過因為我才初學沒多久 很多方法幾乎都看不太懂=.=
希望各位能提供一些修改意見 感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.147.250
感謝TsinTa大經由站內信幫忙
經過原作者同意附上站內信內容 讓大家參考
#include<stdio.h>
int main()
{
int i,j,k,l=0,p,x,y,q=3,r=6,s=0;
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int b[3][3]={{9,8,7},{6,5,4},{3,2,1}},c[27],d[9];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
c[l++]=a[i][k]*b[k][j];
}
}
}
for(p=0;p<9;p+=3)
{
d[s]=(c[p]+c[p+1]+c[p+2]);
printf("%d ",d[s++]);
}
printf("\n");
for(x=9;x<18;x+=3)
{
d[q]=c[x]+c[x+1]+c[x+2];
printf("%d ",d[q++]);
}
printf("\n");
for(y=18;y<27;y+=3)
{
d[r]=c[y]+c[y+1]+c[y+2];
printf("%d ",d[r++]);
}
return 0;
}
※ 編輯: lpr2311 來自: 203.67.147.250 (04/24 14:09)