/**
* This code is based on below article:
* https://d...content-available-to-author-only...o.jp/qa/question_detail/q10186458910
* Copyright is almost like public domain.
* https://a...content-available-to-author-only...o.jp/docs/info/terms/chapter1.html#cf3rd
*/
#include <stdio.h>
int a[4][3], b[3][4], c[4][4] = {0}; // ここで折角グローバル変数を宣言した意味を考えましょう.
void mat_mul(const int a[4][3], const int b[3][4], int c[4][4]) {
int i, j, k;
for (i = 0; i < 4; i++) // ; は不要.
for (j = 0; j < 4; j++)
for (k = 0; k < 3; k++) // ; は不要.
c[i][j] += a[i][k] * b[k][j]; // = だと加算されないので += でなければ駄目.
}
void mat_print(const int c[4][4]) {
int i, j;
for (i = 0; i < 4; i++) { // L21-25 に { } が必要(※1 は i のループ毎に実行).
for (j = 0; j < 4; j++)
}
}
void input_matrix() {
// int m1[4][3], m2[3][4]; // ローカル変数なのでこれに代入しても input_matrix() 外に渡せない.
int i;
printf("4行3列の行列を入力せよ。(数字と数字の間は半角スペース)\n"); for (i = 0; i < 4; i++) {
// scanf("%d %d %d", &m1[i][0], &m1[i][1], &m1[i][2]);
scanf("%d %d %d", &a
[i
][0], &a
[i
][1], &a
[i
][2]); // グローバル変数の a に代入. }
printf("3行4列の行列を入力せよ。(数字と数字の間は半角スペース)\n"); for (i = 0; i < 3; i++) {
// scanf("%d %d %d %d", &m2[i][0], &m2[i][1], &m2[i][2], &m2[i][3]);
scanf("%d %d %d %d", &b
[i
][0], &b
[i
][1], &b
[i
][2], &b
[i
][3]); // グローバル変数の b に代入. }
}
int main(void) {
// int m1, m2, m3; // ※2
input_matrix(); // 標準入力からグローバル変数 a, b に値を読み込む.
// mat_mul(m1, m2, m3); // ※2 の m1, m2, m3 は int. mat_mul() は int 配列を渡す必要がある.
mat_mul(a, b, c); // グローバル変数 a, b, c を渡す.
// mat_print(m3); // ※2 の m3 は int. mat_print() は int 配列を渡す必要がある.
mat_print(c); // グローバル変数の c を渡す.
return 0;
}
LyoqCiAqIFRoaXMgY29kZSBpcyBiYXNlZCBvbiBiZWxvdyBhcnRpY2xlOgogKiBodHRwczovL2QuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLm8uanAvcWEvcXVlc3Rpb25fZGV0YWlsL3ExMDE4NjQ1ODkxMAogKiBDb3B5cmlnaHQgaXMgYWxtb3N0IGxpa2UgcHVibGljIGRvbWFpbi4KICogaHR0cHM6Ly9hLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5vLmpwL2RvY3MvaW5mby90ZXJtcy9jaGFwdGVyMS5odG1sI2NmM3JkCiAqLwojaW5jbHVkZSA8c3RkaW8uaD4KCmludCBhWzRdWzNdLCBiWzNdWzRdLCBjWzRdWzRdID0gezB9OyAvLyDjgZPjgZPjgafmipjop5LjgrDjg63jg7zjg5Djg6vlpInmlbDjgpLlrqPoqIDjgZfjgZ/mhI/lkbPjgpLogIPjgYjjgb7jgZfjgofjgYYuCgp2b2lkIG1hdF9tdWwoY29uc3QgaW50IGFbNF1bM10sIGNvbnN0IGludCBiWzNdWzRdLCBpbnQgY1s0XVs0XSkgewogIGludCBpLCBqLCBrOwogIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspIC8vIDsg44Gv5LiN6KaBLgogICAgZm9yIChqID0gMDsgaiA8IDQ7IGorKykKICAgICAgZm9yIChrID0gMDsgayA8IDM7IGsrKykgLy8gOyDjga/kuI3opoEuCiAgICAgICAgY1tpXVtqXSArPSBhW2ldW2tdICogYltrXVtqXTsgLy8gPSDjgaDjgajliqDnrpfjgZXjgozjgarjgYTjga7jgacgKz0g44Gn44Gq44GR44KM44Gw6aeE55uuLgp9Cgp2b2lkIG1hdF9wcmludChjb25zdCBpbnQgY1s0XVs0XSkgewogIGludCBpLCBqOwogIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsgLy8gTDIxLTI1IOOBqyB7IH0g44GM5b+F6KaB77yI4oC7MSDjga8gaSDjga7jg6vjg7zjg5fmr47jgavlrp/ooYzvvIkuCiAgICBmb3IgKGogPSAwOyBqIDwgNDsgaisrKQogICAgICBwcmludGYoIiU0ZCIsIGNbaV1bal0pOyAvLyDigLsxCiAgICBwdXRjaGFyKCdcbicpOwogIH0KfQoKdm9pZCBpbnB1dF9tYXRyaXgoKSB7CgogIC8vIGludCBtMVs0XVszXSwgbTJbM11bNF07IC8vIOODreODvOOCq+ODq+WkieaVsOOBquOBruOBp+OBk+OCjOOBq+S7o+WFpeOBl+OBpuOCgiBpbnB1dF9tYXRyaXgoKSDlpJbjgavmuKHjgZvjgarjgYQuCiAgaW50IGk7CgogIHByaW50ZigiNOihjDPliJfjga7ooYzliJfjgpLlhaXlipvjgZvjgojjgIIo5pWw5a2X44Go5pWw5a2X44Gu6ZaT44Gv5Y2K6KeS44K544Oa44O844K5KVxuIik7CiAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewogICAgLy8gc2NhbmYoIiVkICVkICVkIiwgJm0xW2ldWzBdLCAmbTFbaV1bMV0sICZtMVtpXVsyXSk7CiAgICBzY2FuZigiJWQgJWQgJWQiLCAmYVtpXVswXSwgJmFbaV1bMV0sICZhW2ldWzJdKTsgLy8g44Kw44Ot44O844OQ44Or5aSJ5pWw44GuIGEg44Gr5Luj5YWlLgogIH0KCiAgcHJpbnRmKCIz6KGMNOWIl+OBruihjOWIl+OCkuWFpeWKm+OBm+OCiOOAgijmlbDlrZfjgajmlbDlrZfjga7plpPjga/ljYrop5Ljgrnjg5rjg7zjgrkpXG4iKTsKICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICAvLyBzY2FuZigiJWQgJWQgJWQgJWQiLCAmbTJbaV1bMF0sICZtMltpXVsxXSwgJm0yW2ldWzJdLCAmbTJbaV1bM10pOwogICAgc2NhbmYoIiVkICVkICVkICVkIiwgJmJbaV1bMF0sICZiW2ldWzFdLCAmYltpXVsyXSwgJmJbaV1bM10pOyAvLyDjgrDjg63jg7zjg5Djg6vlpInmlbDjga4gYiDjgavku6PlhaUuCiAgfQp9CgppbnQgbWFpbih2b2lkKSB7CiAgLy8gaW50IG0xLCBtMiwgbTM7IC8vIOKAuzIKICBpbnB1dF9tYXRyaXgoKTsgLy8g5qiZ5rqW5YWl5Yqb44GL44KJ44Kw44Ot44O844OQ44Or5aSJ5pWwIGEsIGIg44Gr5YCk44KS6Kqt44G/6L6844KALgogIC8vIG1hdF9tdWwobTEsIG0yLCBtMyk7IC8vIOKAuzIg44GuIG0xLCBtMiwgbTMg44GvIGludC4gbWF0X211bCgpIOOBryBpbnQg6YWN5YiX44KS5rih44GZ5b+F6KaB44GM44GC44KLLgogIG1hdF9tdWwoYSwgYiwgYyk7IC8vIOOCsOODreODvOODkOODq+WkieaVsCBhLCBiLCBjIOOCkua4oeOBmS4KICBwdXRzKCLnqY0iKTsKICAvLyBtYXRfcHJpbnQobTMpOyAvLyDigLsyIOOBriBtMyDjga8gaW50LiBtYXRfcHJpbnQoKSDjga8gaW50IOmFjeWIl+OCkua4oeOBmeW/heimgeOBjOOBguOCiy4KICBtYXRfcHJpbnQoYyk7IC8vIOOCsOODreODvOODkOODq+WkieaVsOOBriBjIOOCkua4oeOBmS4KCiAgcmV0dXJuIDA7Cn0K