前提・実現したいこと
構造体配列の初期値から、平均点を求めて、その点数によって
評価を決めて、それらを込みにした表示をするプログラムを書きたいです。
発生している問題・エラーメッセージ
発生している問題は、ソースコード最後の表示するところで 本来ならば一人一行で計5行表示されるはずが、id1001の行が ずっと表示され続けることです。 エラーは出ていません。
該当のソースコード
c
1#include<stdio.h> 2 3#define NUM 5 4 5typedef struct student{ 6 int id; 7 int kokugo; 8 int sugaku; 9 int rika; 10 int syakai; 11 float ave; 12 char rank; 13}STUDENT; 14 15int main(void){ 16 17 int i=0; 18 19 STUDENT data[NUM]={ 20 {1001, 85, 74, 63, 90, 0.0, '?'}, 21 {1002, 78, 65, 70, 62, 0.0, '?'}, 22 {1003, 89, 92, 88, 76, 0.0, '?'}, 23 {1004, 32, 48, 66, 25, 0.0, '?'}, 24 {1005, 92, 76, 81, 98, 0.0, '?'} 25 }; 26 27 for(i=0; i<NUM; i++){ 28 data[i].ave=(data[i].kokugo+data[i].sugaku+data[i].rika+data[i].syakai)/4; 29 30 if(data[i].ave >= 80.00) 31 data[i].rank='A'; 32 else if(data[i].ave >=70.00) 33 data[i].rank='B'; 34 else if(data[i].ave >=60.00) 35 data[i].rank='C'; 36 else 37 data[i].rank='D'; 38 } 39 40 for(i=0; i<NUM; i++){ 41 if(i=0){ 42 printf("番号\t国語\t数学\t理科\t社会\t平均\t評価\n"); 43 } 44 printf("%d\t%d\t\%d\t%d\t%d\t%.2f\t%c\n", 45 data[i].id, data[i].kokugo, data[i].sugaku, data[i].rika, 46 data[i].syakai, data[i].ave, data[i].rank); 47 } 48 49 return 0; 50} 51 52
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/05/10 03:03
2018/05/10 03:14
退会済みユーザー
2018/05/10 03:23
2018/05/10 03:42