C言語について、 4行3列の行列と3行4列の行列の積を求めるプログラムを作りたいです。 #include <stdio.h> int main(void) {
C言語について、 4行3列の行列と3行4列の行列の積を求めるプログラムを作りたいです。 #include <stdio.h> int main(void) { int a[4][3]; int b[3][4]; int times[4][4]; //行列aの数値の入力 puts("行列aの数値を入力せよ"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { printf("a[%d][%d]", i, j); scanf("%d", &a[i][j]); } } //行列bの数値の入力 puts("行列bの数値を入力せよ"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("b[%d][%d]", i, j); scanf("%d", &b[i][j]); } } //配列timesにaとbの積を格納 for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { for (int k = 0; k < 3; k++) { times[i][j] += a[i][k] * b[k][j]; } } } //行列aとbの積を表示 puts("行列aとbの積"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) printf("%4d", times[i][j]); putchar('\n'); } return 0; } 上記のプログラムは私が書いたものです。 しかし、これでは思ったように行列aとbの積を表示してくれません。 理想の表示は下記のようなものです。 行列aとbの積 16 10 16 18 19 13 11 17 19 13 15 13 17 11 17 15 プログラムが間違っているのだと思うのですが、どこが間違っているのかわかりません。誰か教えてくれると嬉しいです。
C言語関連・63閲覧
ベストアンサー
質問者からのお礼コメント
thanks
お礼日時:5/20 19:48