最近剛學C語言學到陣列
在寫內積相乘的問題時
發現輸入後卻跑不出輸出
請問可以怎樣修正呢?
#include<stdio.h>
main()
{
int a[2][3],b[3][4],c[2][4];
int i, j, k;
for (i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&(a[i][j]));
for (j=0;j<3;i++)
for(k=0;k<4;k++)
scanf("%d",&(b[j][k]));
for (i=0;i<2;i++)
for(k=0;k<4;k++)
c[i][k]=0;
for (i=0;i<2;i++)
for(k=0;k<4;k++)
for(j=0;j<3;j++)
c[i][k]+=a[i][j]*b[j][k];
for (i=0;i<2;i++)
for(k=0;k<4;k++)
printf("%4d",c[i][k]);
printf("\n");
return 0;
}
抓到問題了,
for (j=0;j<3;i++)
改成
for (j=0;j<3;j++)
就好了,
有沒有發現哪裡不一樣?
你這樣子不容易除錯,
我幫你加了兩個printf,
再改一下顯示的方式,
看起來比較像矩陣。
int a[2][3],b[3][4],c[2][4];
int i, j, k;
for (i=0;i<2;i++)
for(j=0;j<3;j++)
{
printf("a[%d][%d] = ",i,j);
scanf("%d",&(a[i][j]));
}
for (j=0;j<3;j++)
for(k=0;k<4;k++)
{
printf("b[%d][%d] = ",j,k);
scanf("%d",&(b[j][k]));
}
for (i=0;i<2;i++)
for(k=0;k<4;k++)
c[i][k]=0;
for (i=0;i<2;i++)
for(k=0;k<4;k++)
for(j=0;j<3;j++)
c[i][k]+=a[i][j]*b[j][k];
for (i=0;i<2;i++)
{
for(k=0;k<4;k++)
printf("%4d",c[i][k]);
printf("\n");
}
printf("\n");
這是執行結果
C 語言
副檔名是 cpp
會不會是拿明朝的劍來斬清朝的官呀
麻煩你說一下
你用什麼 C compiler
或者用什麼 IDE / 編輯器