看板 C_and_CPP 關於我們 聯絡資訊
不好意思 我是新手 @@ 先附上我的程式碼 就是八乘八的矩陣 #include <stdio.h> int i,j,k; int main(void) { float a[8][8]={3./4.,0,0,0,0,0,0,0, 0,(-3./4.),1./2.,0,1./2.,0,0,0, 0,1./2.,-3./4.,0,1./2.,0,0,0, 0,0,0,3./4.,0,1./2.,1./2.,0, 0,1./2.,1./2.,0,3./4.,0,0,0, 0,0,0,1./2.,0,(-3./4.),1./2.,0, 0,0,0,1./2.,0,1./2.,-3./4.,0, 0,0,0,0,0,0,0,3./4. }; float b[8][8]={1.,1.,1.,1.,1.,1.,1.,1., 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,}; float c[8][8]={0}; for(i=0;i<8;i++) for(j=0;j<8;j++) { printf("a%d%d=%.2f\n" ,i+1,j+1,a[i][j]); }; for(i=0;i<8;i++) for(j=0;j<8;j++) { printf(" b%d%d= %f \n",i+1,j+1,b[i][j]); }; for (i=0; i<8; i++) { for (j=0; j<8; j++) { for(k = 1; k<8; k++) { c[i][j] = c[i][j] +a[i][k] * b[k][j]; } printf("%f ", c[i][j]); } printf("\n"); } return 0; } ~ 為啥我的c陣列跑出都是0,@@ 還有在C裡面可以二維陣列乘一維陣列嗎? ex (8*8)*(8*1)=(8*1) 我剛剛自己試了好像是不行 所以八乘一的矩陣 就只能乖乖寫成八乘八的矩陣嗎? 感謝 不好意思是我擺錯了 我的b[8][8]={1.,0,0,0,0,0,0,0, 1.,0,0,0,0,0,0,0, 1.,0,0,0,0,0,0,0, 1.,0,0,0,0,0,0,0, 1.,0,0,0,0,0,0,0, 1.,0,0,0,0,0,0,0, 1.,0,0,0,0,0,0,0, 1.,0,0,0,0,0,0,0, 我大概知道意思了 那請問如何讓一維陣列 讓c語言認為是直行而不是一列的呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.128.198
firejox:這就要看你怎麼寫了.... 10/03 21:47
tropical72:for(k = 0; k<8; k++) 10/03 21:49
lovelu8888:所以是可以有二維成一維嗎? 10/04 13:45
lovelu8888:T大 K改了 但他的值 都跑出一樣 = = 應該還是錯的 10/04 13:45
tropical72:全跑成 0.75, 很正常的答案.. 或,你想解釋你的原題意嗎 10/04 16:30
lovelu8888:不好意思是 是我擺錯了! 10/04 17:24
※ 編輯: lovelu8888 來自: 140.128.128.198 (10/04 17:28)