看板 C_and_CPP 關於我們 聯絡資訊
這是我寫出來的程式 不過印出來好像怪怪的 上面宣告陣列的時候寫成要指標表示 run到*(*(a+2)+3)={{2,2,6},{3,2,8}}; 好像也會卡住 不知道錯在哪裡說 #include <iostream> #include <stdlib.h> using namespace std; int main(void) { int a[2][3]={{2,2,6},{3,2,8}}; int b[3][2]={{3,5},{3,2},{2,2}}; int c[2][2]; int i, j, k; for (i=0;i<2;i++) { for (j=0;j<2;j++) { c[i][j]=0; for (k=0;k<3;k++) { *(*(c+i)+j)=*(*(a+i)+k)**(*(c+k)+j); } cout<<"c[i][j]="<<c[i][j]<< "\t"; cout << "\n"; } system("pause"); return 0; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.217.104.26
freesamael:為什麼要刻意用不直覺的寫法? 03/23 14:25
VictorTom:為什麼要寫 *(*(c+i)+j)=*(*(a+i)+k)**(*(c+k)+j); 03/23 14:25
dendrobium:Cij += Aik*Bkj 03/23 14:25
VictorTom:直接寫c[i][j] = a[i][k] * c[k][j];這樣就好了吧.... 03/23 14:25
freesamael:你的式子好像應該是c[i][j]=a[i][k]*b[k][j] 03/23 14:26
weselyong:基本上,google可以找到很多程式碼。 03/23 14:26
weselyong:你可以對照你的 03/23 14:26
freesamael:但是你的後項卻帶了 c,所以超過邊界了 03/23 14:26
VictorTom:另外, 你的算式是錯的, C.. += A.. * B.. 這樣@_@" 03/23 14:26
VictorTom:哇靠~~忽然發現小弟我推慢了好多步....Orz 03/23 14:27
genhao6729:因為問題的本身就是要我用指標來表示 03/23 14:41
genhao6729:印出來結果好像還是怪怪的XD 03/23 14:45
tabinoyume:感覺他好像想用prefix 03/23 15:35
tabinoyume:我看錯了 原來是要用指標 03/23 15:49