求C语言高手!指出以下程序的错误并改正,上机把程序调通

下面程序中函数fun的形参数组s中传送过来的是80到89分的学生成绩,函数fun的功能是:统计80到89分各分数的人数和此分数段的平均分。例如:若输入:808881848... 下面程序中函数fun 的形参数组s 中传送过来的是80 到89 分的学生成绩,函数fun 的功能是:
统计80 到89 分各分数的人数和此分数段的平均分。
例如:若输入: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<stdio.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,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);
}
展开
 我来答
李白花明水流香9
2011-11-28 · 超过31用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:74.7万
展开全部
楼主很多符号汉语符号,在编译器上是不允许的……
你的输入也有误: 80 88 81 84 88 84 84 81 88 82 82 -1
你的负号(-1)是中文字符
这是修改之后的代码:
#include<stdio.h>
#define N 20
int main()
{
int s[N],n[10],i=0,a;
float ave;
float fun(int s[N],int n,int *num);
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);
a=i;
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)
{
float ave;
int k,t,sum=0;
for(k=0;k<10;k++)
num[k]=0;
for(k=0; k<n; k++)
{t=s[k]-80; num[t]++;sum+=s[k];}
ave=1.0*sum/n;
return(ave);
}
结果:
Please enter the mark: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
请按任意键继续. . .
我在清华读大学
2011-11-28 · TA获得超过110个赞
知道答主
回答量:71
采纳率:0%
帮助的人:75.7万
展开全部
for(i=0; i<10; i+2)//i=i+2
printf("%d:%d %d:%d\n", 80+i, n[i], 81+i, n[i+1]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式