一道C语言程序的题目

指岀以下程序的错误并改正,上机把程序调通。下面程序中函数fun的形参数组s中传送过来的是80-90分的学生成绩,参数fun的功能是:统计80-90分各分数的人数和此分数段... 指岀以下程序的错误并改正,上机把程序调通。
下面程序中函数fun的形参数组s中传送过来的是80-90分的学生成绩,参数fun的功能是:统计80-90分各分数的人数和此分数段的平均分。
例如:若输入:80,88,81,84,88,84,84,81,88,82,82,-1
则输岀应该是:
80:1 81: 2
82: 2 83: 0
84: 3 85: 0
86: 0 87: 0
88: 3 89: 0
average:83.8
注意:用-1结束输入
#include<stido.h>
#define N 20
main()
{ int s[N],n[10],i=0,a;
float ave;
printf("\nPlease enter the mark:");
scanf("%d",&a);
while(a>0)
{if(a>=80 && a<=89){s[i]=a;i++;}
scanf("%d",&a);
}
ave=fun(s,i,n);
for(i=0;I<10;i+2)
printf("%d:%d%d:%d\n",80+i,n[i],81+i,n[i+1]) ;
printf("average:%.1f\n",ave);
}
float fun(int s[N],int n,int num[]);
{ int k,t,sum=0;
for(k=0;k<n;k++)
{t=s[k]-80;num[t]++:sum+=s[k];}
ave=sum/n;
return (ave);
}
展开
 我来答
tgw5667
2006-12-15 · TA获得超过4731个赞
知道大有可为答主
回答量:2196
采纳率:0%
帮助的人:2753万
展开全部
#include<stdio.h>
#define N 20
main()
{ int s[N],i,m,sum,a;
float ave;

for(i=0;i<20;i++)s[i]=0;
sum=0;
m=0;
a=1;
while(a>0){
printf("\nPlease enter the mark:");
scanf("%d",&a);
if(a>=80 && a<=89)
{sum=sum+a;
s[a-80]++;
m++;
}
}

ave=(float)sum/m;
printf("\nave = %d\n",ave)
for(i=0;i<=m;i+=2)printf("%d: %d/ %d: %d\n",80+i,s[i],80+i+1,s[i+1]);
}

上述程序调试通过
注意:你原来的头文件名写错了!


花开声
2006-12-14 · TA获得超过564个赞
知道小有建树答主
回答量:1112
采纳率:0%
帮助的人:472万
展开全部
太简单了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式