[問題] 二維陣列相乘
不好意思 我是新手
@@
先附上我的程式碼 就是八乘八的矩陣
#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
→
10/03 21:47, , 1F
10/03 21:47, 1F
→
10/03 21:49, , 2F
10/03 21:49, 2F
→
10/04 13:45, , 3F
10/04 13:45, 3F
→
10/04 13:45, , 4F
10/04 13:45, 4F
→
10/04 16:30, , 5F
10/04 16:30, 5F
→
10/04 17:24, , 6F
10/04 17:24, 6F
※ 編輯: lovelu8888 來自: 140.128.128.198 (10/04 17:28)
討論串 (同標題文章)