永发信息网

将20个学生的数学成绩放入一维数组中,求其平均成绩并统计低于平均分的学生人数。

答案:5  悬赏:80  手机版
解决时间 2021-03-21 19:21
  • 提问者网友:辞取
  • 2021-03-21 07:54
将20个学生的数学成绩放入一维数组中,求其平均成绩并统计低于平均分的学生人数。
最佳答案
  • 五星知识达人网友:山有枢
  • 2021-03-21 09:04
#include
void main()
{
int i,j=0,sum=0;            //         sum要初始化为0
int a[20];  
float ave;

printf("请输入20个学生的数学成绩:
");

for(i=0;i<20;i++)            
scanf("%d",&a[i]);
for(i=0;i<20;i++)  
sum+=a[i];


ave=((float)sum)/20;   //平均值应该放在这儿来求
for(i=0;i<20;i++)
{if(a[i]j++;}

printf("平均分%5.2f
",ave);

printf("低于平均分人数%3d
",j);

}
结果:

全部回答
  • 1楼网友:woshuo
  • 2021-03-21 13:40
ave=sum/20; 这句话要放在统计前面,你这样写的ave没有值,无法比较for(i=0;i<20;i++) sum+=a[i];
ave=sum/20; for(i=0;i<20;i++) {if(a[i]
  • 2楼网友:时间的尘埃
  • 2021-03-21 12:14
应将ave=sum/20放在倒数第一个循环前
  • 3楼网友:三千妖杀
  • 2021-03-21 10:41
ave=sum/20;这一句改为ave=sum/20.0;
因为sum为整型,除以20的话结果也为整型,会舍弃小数部分,得到的平均值不正确
  • 4楼网友:你哪知我潦倒为你
  • 2021-03-21 09:23
#include
void main()
{
int i,j=0;
int a[20];  
float ave,sum=0.0;
printf("请输入20个学生的数学成绩: ");
for(i=0;i<20;i++)            
scanf("%d",&a[i]);
for(i=0;i<20;i++) 
sum+=a[i];
ave=sum/20;
for(i=0;i<20;i++)
{if(a[i]j++;}
printf("平均分%5.2f ",ave);
printf("低于平均分人数%3d ",j);
}

你对比下的,主要是sum要用float型的,还有ave=sum/20;要放for之前;最后祝你学习顺利,求采纳。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯