输入一组学生成绩,统计优(90~100)、良(80~89)、中(70~79)、及格(60~69)及不及格(0~59)的人数及所占的百分比,以及总平均成绩。
#include <stdio.h>
void main()
{
int n9=0,n8=0,n7=0,n6=0,f=0,sum=0,c=0,x;
scanf("%d",&x);
while(0<=x<=100)
{
sum=sum+x,c++;
if(90<=x<=100)
n9++;
else if(80<=x<90)
n8++;
else if(70<=x<80)
n7++;
else if(60<=x<70)
n6++;
else f++;
}
printf_s("n9=%d,p9=%d,"n8=%d,p8=%d,"n7=%d,p7=%d,"n6=%d,p6=%d,"f=%d,pf=%d,average=%d",n9,n9*100/c+'%',n8,n8*100/c+'%',n7,n7*100/c+'%',n6,n6*100/c+'%',f,f*100/c+"%"",sum/c);
}
错误1:C中没有x<=y<=z这种写法,你要写做x<=y && y<=z
错误2:按你原本的意思是输入一个不在0至100之间的数就结束循环,否则继续,但是你的循环的最后并没有再次做scanf
错误3:C中没有x+"%"这种写法,你这样写程序会理解为你要把两个数字的ASCII进行相加。
错误4:printf_s用法错误
改动后的代码
#include <stdio.h>那为什么无法输出呢
追答无法输出具体是指啥,如果你要停顿,那在最后的}前加一行getchar();
追问谢谢
参考代码:
#include <stdio.h>