【C语言】编程输入学生(不超过60个)成绩,求出低于平均成绩的人数和分...
发布网友
发布时间:2024-10-22 15:55
我来回答
共4个回答
热心网友
时间:2024-11-09 16:59
你现在的程序必要要输入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);
}
热心网友
时间:2024-11-09 16:58
,while(x>=0&&n<=60)
{sum+=x;xscj[n++]=x;scanf("%f",&x);}
这一句就限定你必须要输入60个数字。
热心网友
时间:2024-11-09 17:02
你的成绩输入用的while循环,必须n大于60或x小于0才能结束这个循环.
热心网友
时间:2024-11-09 17:03
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
}
这样每次输入都会有提示,否则就出现你自己都不知道程序运行到哪里了
写代码是基础,读代码的能力比写代码更重要 希望对你有帮助 谢谢