C语言:从键盘上输入若干学生的成绩,计算出平均成绩,并输出不及格的成绩和人数
#include<stdio.h>
int main()
{
char ch;
int i,x,n=0,s=0;
for(i=1;;i++)
{scanf("%d",&x);
if((ch=getchar())='\n') break;
if(x<60)
{printf("%d ",x);n++;}
s+=x;}
printf("\n平均分=%d 不及格人数=%d",s/(i-1),n);
}
我写的哪里错了???
#include<stdio.h>
int main()
{
char ch;
int i,x,n=0,s=0;
for(i=1;;i++)
{
printf("请输入学生成绩,以空格隔开,以回车结束:\n");
scanf("%d",&x);
if(x<60)
{
printf("%d ",x);
n++;
}
s+=x;
if((getchar())=='\n')
break;
}
printf("\n平均分=%d 班级人数%d 不及格人数=%d\n",s/i,i,n);
}
你的这段函数在if判槐敏断那里出现错误,在神芦判断中用等号,不是赋值号,还有班级人数那里出现了错误,你是从1开始计算的,那么i就是班级人数。
在执行的时候,你输入数据应该以空格隔开,因为你是以判断换行符为循环条件的。
我在中间加了一条提示铅瞎枝语句,这样程序的交互性会更好一点,也避免自己出错。
是蚂桥if((ch=getchar())=='枝物链\n') break; //等号,不是赋值
要放在s+=x;后面猛孙
平均分改为 s/i
scanf之后直接getchar???这不就直接退出程序了??