C言語の問題で 生徒6人の数学と国語の得点を入力すると 各教科の合計平均、生徒一人一人の合計平均を入力するプログラムを作成せよ

画像

C言語関連 | プログラミング46閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

ThanksImg質問者からのお礼コメント

ソースコード且つ実行例まで載せてあり、とても分かりやすい説明でした。 今日までに提出だったのでとても助かりました。 初期化するのを忘れないようにしていきたいと思います。

お礼日時:1/23 7:52

その他の回答(2件)

0

#include<stdio.h> #define MM 6 int main(void) { int i,j,sum[MM],tensu[MM][2],msum,jsum; printf("%d人の数学と国語の点数を入力してください\n",MM); msum=0; //初期化 jsum=0; //初期化 for(i=0;i<MM;i++){ sum[i]=0; //初期化 printf("\n%d人目\n",i+1); for(j=0;j<2;j++){ if(j==0)printf("数学:"); else printf("国語:"); while(1){ scanf("%d",&tensu[i][j]); if(tensu[i][j]<0||tensu[i][j]>100)printf("0~100で入力してください:"); else break; } } msum+=tensu[i][0]; jsum+=tensu[i][1]; sum[i]=tensu[i][0]+tensu[i][1]; } printf("\n数学の合計点:%3d,平均点:%.1f\n",msum,(double)msum/MM); printf("国語の合計点:%3d,平均点:%.1f\n\n",jsum,(double)jsum/MM); for(i=0;i<MM;i++)printf("%d人目の学生の合計点:%3d,平均点:%5.1f\n",i+1,sum[i],(double)sum[i]/2); return 0; } 要は、すでに回答があるように変数の初期化漏れ、、、、 科目数、生徒数が変化してもプログラムの改変が楽になるように大幅に修正した。 ただ、科目数の対応は不十分です。

0

変数を使用する場合は、「初期化」をしましょう。 int sum[6] = {0}; int tensu[6][2] = {0}; int i; int msum = 0,jsum = 0; の様に。