#include
int main(){
float f,zf=0;
int num_60_down=0;
int num_60_79=0;
int num_80_89=0;
int num_90_100=0;
float pjf;
int num=0;
for(int i=0;i<10;i++)
{
scanf("%f,",&f);
if(f>=90)
{
num_90_100++;
}
else if(f>=80)
{
num_80_89++;
}
else if(f>=60)
{
num_60_79++;
} else {
num_60_down++;
}
zf+=f;
num++;
}
pjf=zf/num;
printf("差: %d\n",num_60_down);
printf("及格: %d\n",num_60_79);
printf("优秀: %d\n",num_80_89);
printf("Good: %d\n",num_90_100);
printf("平均分:%f\n",pjf);
}
//楼上哥们儿说出了一个问题
//另外,if的条件逻辑一定要严密。按你原来的逻辑,98分在>90里算了一次,<60的也会算一次
for(num=0;num<=10;num++)
{
scanf("%f,",&f);
if(f>=90)
{
num_90_100++;
}
if(f>=80 && f<89)
{
num_80_89++;
}
if(f>=60 && f<79)
{
num_60_79++;
}
else
{
num_60_down++;
}
zf+=f;
num++;
}
你一个for循环里循环变量num自加了两次那能对么!
对了,还有你的if判断条件如果是并列的话用if...else if...else if...else...,要么就别用那个else直接换成if(f<60),总之逻辑要严密!
编程要养成良好的习惯,定义变量要初始化,Alt+F8可以自动调整格式