C言語なら俺に聞け(入門篇) Part 19
■ このスレッドは過去ログ倉庫に格納されています
0866デフォルトの名無しさん
2007/10/13(土) 13:54:38「2行3列と3行2列の行列の積を求めるプログラムを作成せよ」
x=1,2,3
4,5,6
y=1,5
5,3
8,1
というモノがあるのですが
#include <stdio.h>
int main(void)
{
int i,j,k;
int ma[2][3] = { {1,2,3},{4,5,6} };
int mb[3][2] = { {1,5},{5,3},{8,1} };
int mc[2][2] = {0};
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(k=0;k<3;k++){
mc[i][j] += ma[i][k] * mb[k][j];
}
printf("%d",mc[i][j]);
}
putchar('\n');
}
return (0);
}
上記のプログラムで良いらしいのですが、何故2行3列と3行2列の積が2行2列になるのか。
mc[i][j] += ma[i][k] * mb[k][j];のように加えて行くのか理解することが出来ません。
どのような理屈なのかをお分かりの方、教えてください。
■ このスレッドは過去ログ倉庫に格納されています