質問: 4人の学生の3科目の点数をキーボードから入力し、各学生の合計点を表示するプログラムを作成したいのですが、このやり方でコンパイルするとなぜか左の画像のように数字がおかしくなってしまいます。
回答: /* 2017/12/14 21:07:59__dickiies555さん 4人の学生の3科目の点数をキーボードから入力し、各学生の合計点を表示するプログラムを作成したいのですが、このやり方でコンパイルするとなぜか左の画像のように数字がおかしくなってしまいます。 入力する部分はいいのですが、右の画像のような結果にするにはどう改良したらよいか教えていただきたいです・・・ */ // Visual C++ 2013 #define _CRT_SECURE_NO_WARNINGS #include int main(void){ _int_ d[4][4]={0};_// 数表:ゼロ初期化 _int_ i,j;_____// 配列操作カウンタ _char_*a[]={"国語","数学","理科"}; _ _// 入力 _for(i=0;i<4;i++){_ // 生徒の入力繰返し __printf("%d人目:\n",i+1);_ // 生徒見出し __for(j=0;j<3;j++){ // 科目の入力繰返し ___printf("_ %sの点数=",a[j]);_// 入力プロンプト ___scanf("%d",&d[i][j]);____ // 点数入力 __} _} _ _printf("\n\n__ "); _for(i=0;i<3;i++){ _printf("_%s",a[i]); _} _printf("_合計"); _printf("_\n"); _ _for(i=0;i<4;i++){ __printf("%2d人目",i+1); __printf(" "); __for(j=0;j<4;j++){ ___printf("%4d_",d[i][j]); ___if( j<3 ) d[i][3] += d[i][j]; __} __printf("\n"); _} _ _printf("\n# 正常終了 #\n"); _return 0; } /* STDOUT: 1人目: _ 国語の点数=99 _ 数学の点数=99 _ 理科の点数=99 2人目: _ 国語の点数=88 _ 数学の点数=88 _ 理科の点数=88 3人目: _ 国語の点数=77 _ 数学の点数=77 _ 理科の点数=77 4人目: _ 国語の点数=66 _ 数学の点数=65 _ 理科の点数=64 ___ 国語_数学_理科_合計 1人目_ 99__99__99_ 297 2人目_ 88__88__88_ 264 3人目_ 77__77__77_ 231 4人目_ 66__65__64_ 195 # 正常終了 # 続行するには何かキーを押してください . . . */