• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語の行列の積)

C言語の行列の積について

このQ&Aのポイント
  • C言語を勉強中で2列2列の行列の積のコードを書きたいがうまくできない。
  • コンパイルできても違う答えが返ってくる。
  • どこが間違っているかと、うまいコードにする方法を教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.3

int main () { int i,j,k; int M1[2][2] = {{1,2},{3,4}}; int M2[2][2] = {{-1,5},{-2,-2}}; int A[2][2]; for (i=0;i<2;i++) { for (j=0;j<2;j++) { A[i][j]=0; for (k=0 ; k<2 ; k++) { A[i][j]+=M1[i][k]*M2[k][j]; } printf("%d\t",A[i][j]); } printf("\n"); } }

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

>どこがどう間違っていますか? 以下のページを良く読むと「計算方法が間違っている」のが判ります。 http://sansuu.noblog.net/blog/n/11301547.html

すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

このまま動かしたら 1 2 3 4 と -1 5 -2 -2 で -1 10 -6 -8 と計算しています。 どのような答えがほしいですか? すいません、行列の積の計算がわかっていなくて。 それと、 A[i][j]=0; A[i][j]+=M1[i][j]*M2[i][j]; ではなく、 A[i][j]=M1[i][j]*M2[i][j]; のほうが速いしわかりやすいですよ。

すると、全ての回答が全文表示されます。

関連するQ&A