【C语言】编程输入学生(不超过60个)成绩,求出低于平均成绩的人数和分数

#include<stdio.h>
main()
{
float xscj[60],ave,sum=0,x;
int i,n=0,count;
printf("请输入学生成绩:");
scanf("%f",&x);
while(x>=0&&n<=60)
{sum+=x;xscj[n++]=x;scanf("%f",&x);}
ave=sum/n;
printf("平均成绩=%f\n",ave);
for(count=0,i=0;i<n;i++)
if(xscj[i]<ave)
{
printf("%f\n",xscj[i]);
count++;
if(count%5==0)
printf("\n");
}
printf("低于平均分人数:",count);
}
程序运行后,输入了但是结果出不来,难道是必须输入60个吗?在线求大神啊

你现在的程序必要要输入60个成绩才行;

你在模拟的时候,可以讲60改成5等,一个小点的数字;

你输入5次,就可以出结果了

你的程序还有一些问题,帮你修改了,你试试吧

#include<stdio.h>
main()
{
float xscj[60],ave,sum=0,x;
int i,n=0,count;
printf("请输入学生成绩:");

while(x>=0&&n<5)
{
scanf("%f",&x);
sum+=x;
xscj[n++]=x;
}     

ave=sum/n;
printf("平均成绩=%f\n",ave);
for(count=0,i=0;i<n;i++)
if(xscj[i]<ave)
{
printf("%f\n",xscj[i]);
count++;
if(count%5==0)
printf("\n");
}
printf("低于平均分人数:",count);
}

追问

我改成了5,但是运行的时候必须输入7个数,才会出现结果,并且还出现如图的结果,这是怎么回事啊

追答

帮你改完啦,你试试吧,有问题再问

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-02
main()
{
float xscj[60],ave,sum=0,x;
int i,n=0,count;
printf("请输入学生成绩:");
scanf("%f",&x); //输入 x 变量
while(x>=0&&n<=60) // x>=0 且 n <=60
{
sum+=x; //循环执行 求和 存放至sum
xscj[n++]=x; //将输入的x (成绩)保存至 xscj数组 n++ 学生人数加1
scanf("%f",&x); //再输入成绩 x
}
ave=sum/n; //求出 平均数 ave
printf("平均成绩=%f\n",ave); //输出
for(count=0,i=0;i<n;i++)
if(xscj[i]<ave) //如果某个同学的成绩小与平均数
{
printf("%f\n",xscj[i]); //输出 这个数
count++; //count ++
if(count%5==0) //count ==5的倍数时执行
printf("\n"); //输出 \n 即每输出5个数据 换号继续输出
}
printf("低于平均分人数:",count);
}

while(x>=0&&n<=60)为程序继续执行的条件
很明显 你输入的x<=0 或者 输入60个数据 就可以跳出循环继续运行

或者你可以再while中加入printf
while(x>=0&&n<=60) // x>=0 且 n <=60
{
sum+=x; //循环执行 求和 存放至sum
xscj[n++]=x; //将输入的x (成绩)保存至 xscj数组 n++ 学生人数加1
printf("请输入学生成绩:");
scanf("%f",&x); //再输入成绩 x
}
这样每次输入都会有提示,否则就出现你自己都不知道程序运行到哪里了
写代码是基础,读代码的能力比写代码更重要 希望对你有帮助 谢谢本回答被提问者采纳
第2个回答  2013-08-02
,while(x>=0&&n<=60)
{sum+=x;xscj[n++]=x;scanf("%f",&x);}
这一句就限定你必须要输入60个数字。
第3个回答  2013-08-02
你的成绩输入用的while循环,必须n大于60或x小于0才能结束这个循环.
相似回答