最速怪談選手権

プログラミング初心者です。以下のプログラミングの何が間違っているのかがわかりません・・・。どなたか気づいた方いらっしゃいましたらお願いいたします。

問題→行列 A と行列 B の積を計算し、計算結果を表示するプログラムをfor 文を用いて作成せよ。
A{{1,0,2},
{0,-2,1},
{1,0,1}}

B{{-2,4},
{3,-1},
{3,2}}

以下私なりに書いてみたものです。(実行はできましたが、積の計算結果のみ表示されません。)

#include<stdio.h>
int main(void){
int a[3][3]={{1,0,2},
{0,-2,1},
{1,0,1}};
int b[3][2]={{-2,4},
{3,-1},
{3,2}};
int ab[3][2];
int i,j,k;

printf("A\n");

for(i = 0;i < 3;i=i+1){
for(j = 0;j < 3;j=j+1){
printf("%3d",a[i][j]);
}
printf("\n");
}

printf("B\n");

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

printf("A*B\n");

for(i = 0;i < 3;i=i+1){
for(j = 0;j < 2;j=j+1){
ab[i][j]=0;
for(k =0;k<3;k+1){
ab[i][j] = ab[i][j]+ a[i][k] * b[k][j];
}
}
}
for(i=0;i<3;i+1){
for(i=0;j<2;j+1){
printf("%3d",ab[i][j]);
}
printf("\n");
}
return(0);
}

質問者からの補足コメント

  • 回答ありがとうございます。無知で大変申し訳ないのですが、今の式だと何故無限ループしてしまうのでしょうか?
    for文の直し方がわかりません.......。基本的なことかもしれませんが良ければご助言頂けませんか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/06/14 10:58
  • あああすみません!!見落としてました。できました。ありがとうございます。

    No.3の回答に寄せられた補足コメントです。 補足日時:2019/06/14 12:56

A 回答 (3件)

kのループとabを印刷するループが、無限ループしてる(^^;


後はたぶん大丈夫。
この回答への補足あり
    • good
    • 0

>今の式だと何故無限ループしてしまうのでしょうか?


マジですか?

ループ変数を「更新」してないですよね。
後、abの印刷の内側のループのforの中の変数名が
間違ってる。
この回答への補足あり
    • good
    • 1

うん, for 文がなんかしょか間違ってるね.

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!