行列の積を求めるプログラムを作りたいと思っています。
とりあえず最初は(2,3)×(3,2)にしてみました。
最終的には自分で行数と列数を指定出来るようにしたいのですが…
以下のプログラムを実行すると
int i,j,k; int mx[2][3],my[3][2],mz[2][2];
for(i = 0;i < 2;i++){
for(j = 0;j < 3;j++){
printf("a%d%d:",i+1,j+1); scanf("%d",&mx[i][j]);
}}

for(i = 0;i < 3;i++){
for(j = 0;j < 2;j++){
printf("b%d%d:",i+1,j+1); scanf("%d",&mx[i][j]);
}}

for(i = 0;i < 2;i++){
for(j = 0;j < 2;j++){
mz[i][j] = 0; for(k = 0;k < 3;k++)
mz[i][j] += mx[i][k] * my[k][j];
}}

for(i = 0;i < 2;i++){
for(j = 0;j < 2;j++)
printf("%3d",mz[i][j]);
putchar('\n');
}

正しく計算結果が表示されないのですが何故でしょうか?