#include <stdio.h>

int main(void)
{
int i, j;
int ma[2][3] = { {1, 2, 3}, {4, 5, 6} };
int mb[3][2] = { {1, 5}, {5, 3}, {8, 1} };

for (i = 1; i < 2; i++)
for (j = 1; j < 2; j++)
mc[1][1] = ma[i][j]*mb[i][j] + ma[i+1][j]*mb[i][j+1] + ma[i+2][j]*mb[i][j+2];
mc[1][2] = ma[i][j]*mb[i+1][j] + ma[i+1][j]*mb[i+1][j+1] + ma[i+2][j]*mb[i+1][j+2];
mc[2][1] = ma[i+1][j]*mb[i][j] + ma[i+1][j+1]*mb[i][j+1] + ma[i+1][j+2]*mb[i][j+2];
mc[2][2] = ma[i+1][j]*mb[i+1][j] + ma[i+1][j+1]*mb[i+1][j+1] + ma[i+1][j+2]*mb[i+1][j+2];

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

return (0);
}
2行3列と3行2列の積をもとめるプログラムなんですが
mcを求める演算を簡単にするにはどうしたらいいのでしょうか。

しかもこれさえまともに動かない・・orz