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

/*将20个学生的数学成绩放入一维数组中,求其平均成绩并统计低于平均分的学生人数。*/#include<stdio.h>voidmain(){inti,j=0,sum;i... /*将20个学生的数学成绩放入一维数组中,求其平均成绩并统计低于平均分的学生人数。*/
#include<stdio.h>
void main()
{
int i,j=0,sum;
int a[20];
float ave;
printf("请输入20个学生的数学成绩:\n");
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
sum+=a[i];
for(i=0;i<20;i++)
{if(a[i]<ave)
j++;}
ave=sum/20;
printf("平均分%5.2f\n",ave);
printf("低于平均分人数%3d\n",j);
}

请问这个程序哪里错了
展开
 我来答
百度网友6fe74e2
2013-05-06 · TA获得超过6592个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:247万
展开全部

#include<stdio.h>

void main()

{

int i,j=0,sum=0;            //         sum要初始化为0

int a[20];  

float ave;

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

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]<ave)

j++;}

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

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

}

结果:

hai3zei3wang3
2013-05-06 · TA获得超过173个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:92万
展开全部
#include<stdio.h>
void main()
{
int i,j=0;
int a[20];  
float ave,sum=0.0;
printf("请输入20个学生的数学成绩:\n");
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]<ave)
j++;}
printf("平均分%5.2f\n",ave);
printf("低于平均分人数%3d\n",j);
}

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
koa875
2013-05-06 · TA获得超过183个赞
知道答主
回答量:39
采纳率:0%
帮助的人:50.8万
展开全部
ave=sum/20;这一句改为ave=sum/20.0;
因为sum为整型,除以20的话结果也为整型,会舍弃小数部分,得到的平均值不正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-06
展开全部
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]<ave)j++;} 数据都定义成float
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5f32517
2013-05-06 · TA获得超过297个赞
知道答主
回答量:86
采纳率:0%
帮助的人:30.4万
展开全部
应将ave=sum/20放在倒数第一个循环前
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式