/* 2行3列の行列maと3行2列の行列mbの積を、2行2列の行列mcに格納する関数 void mul(const int ma[2][3], const int mb[3][2], int mc[2][2]) {} を作成せよ。 */ #include void mul(const int ma[2][3], const int mb[3][2], int mc[2][2]) { int i, j, k; for ( k = 0; k < 2; k++ ) for( i = 0; i < 2; i++ ) for ( j = 0; j < 3; j++ ) mc[i][k] += ma[i][j] * mb[j][k]; } int main(void) { int i, j; int ma[2][3] = {{ 1, 2, 3 }, { 4, 5, 6 }}; int mb[3][2] = {{ 6, 3 }, { 4, 5 }, { 1, 2 }}; int mc[2][2] = { 0 }; mul(ma, mb, mc); for ( i = 0; i < 2; i++ ) { for ( j = 0; j < 2; j++ ) printf("%3d", mc[i][j]); putchar('\n'); } return 0; }