c言語の課題で配列で成績処理をするプログラムを作っています。
内容は、点数を入力していき、その合計点と平均点を出力して、
優:100~80点
良:79~70点
可:69~60
不可:60点未満
の基準で 優 良 可 不可 と判断し、それぞれの人数の合計を
出力するプログラムを作っています。
プログラムを作ってコンパイルし、実行したたところ、
優 良 可 不可 のカウントがきちんとされていません。
合計点と平均点の出力はきちんと出るのですが、
その部分だけカウントされません。
どこをどのように直したらカウントされるようになるのかを教えてください。
#include<stdio.h>
#define NUM 100
int main(void)
{
int i,j,tmp;
int sum = 0;
int ten[NUM];
int yu,ryo,ka,hu;
printf("成績処理を行います。終了するときは999を入力してください。\n");
yu = 0;
ryo = 0;
ka = 0;
hu = 0;
i=0;
while(i<NUM){
printf("No.%d: ",i+1);
scanf("%d",&ten[i]); //点数の入力
if(ten[i] == 999){ //999が入力されると終了
break;
}else if(ten[i] >= 0 && ten[i] <= 100){ //0~100点以内が入力されれば合計に加算
sum += ten[i];
i++;
}else{ //そうでなければもう一回入力
printf("正しい数値を入力してください。\n");
}
for(j=0;j<NUM;j++)
if(ten[i] < 60){ //60点未満なら不可の人数に加算
hu++;
}else if(ten[i]<=69){
ka++; //69点以下なら可に加算
}else if(ten[i]<=79){
ryo++; //79点以下なら良に加算
}else{
yu++; //それ以外なら優に加算
}
}
printf("%d人の処理結果\n",i);
printf("合計点:%d\n",sum);
printf("平均点:%.2f\n",(double)sum/i);
printf("「優」の数%d人\n",yu);
printf("「良」の数%d人\n",ryo);
printf("「可」の数%d人\n",ka);
printf("「不可」の数%d人\n",hu);
return 0;
}