• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:原因が分かりません!)

C言語の行列の積の計算で最大値と最小値が正しくない原因は?

このQ&Aのポイント
  • C言語の課題で行列AとBの積Cを計算し、最大値と最小値を表示するプログラムが正しく動作しない。
  • プログラムを実行するとCの結果は正しいが、最大値と最小値が異なる。
  • どうして最大値と最小値が正しく表示されないのか原因が不明なので、解決策を教えて欲しい。

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

  • ベストアンサー
回答No.2

#include <stdio.h> int main(void) { int i, j, k; int a[2][2] = { {1,8}, {3,9} }; int b[2][2] = { {4,7}, {2,1} }; int c[2][2] = {0}; int max, min; puts( "matrix A =" ); for(j=0; j<2; j++){ for(k=0; k<2; k++) { printf( "%3d" , a[j][k]); } printf( "\n" ); } puts( "matrix B =" ); for(k=0; k<2; k++){ for(i=0; i<2; i++){ printf( "%3d" , b[k][i]); } printf( "\n" ); } puts( "AとBの積\nmatrix C ="); for(j=0; j<2; j++) { for(i=0; i<2; i++) { for(k=0; k<2; k++) c[j][i] += a[j][k]*b[k][i]; printf( " %3d" , c[j][i]); if( j==0 && i==0 ){ max = c[j][i]; min = c[j][i]; } if( max < c[j][i] ) max = c[j][i]; if( min > c[j][i] ) min = c[j][i]; } printf( "\n" ); } printf( "行列Cの最大値 : %d\n", max); printf( "行列Cの最小値 : %d\n", min); return (0); }

その他の回答 (1)

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.1

max = c[0][0]; min = c[0][0]; とりあえず この2行 コメントアウト 何か {} の対応がおかしな気がする.

jokowkd_035915
質問者

お礼

ご指摘ありがとうございます max = c[0][0]; min = c[0][0]; これは余計なものでした。 また{}の括り方もおかしくなっていました 無事コンパイルし結果が正しくなりました。

関連するQ&A