[問題] 新手寫3*3矩陣相乘 (已解決)

看板C_and_CPP (C/C++)作者 (lpr2311)時間16年前 (2010/04/24 12:09), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
遇到的問題: (題意請描述清楚) 這是我的程式碼 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

04/24 12:14, , 1F
http://tinyurl.com/2ffdofc 倒數第11行開始
04/24 12:14, 1F

04/24 14:03, , 2F
謝謝你提供這個範例給我參考^^
04/24 14:03, 2F
感謝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)
文章代碼(AID): #1BqcxS17 (C_and_CPP)
文章代碼(AID): #1BqcxS17 (C_and_CPP)