一道C语言题目,改错题,快点啊 ,急
指出以下程序的错误并改正,上机把程序调通下面程序中函数fun的形参数组s中传送过来的是80到89分的学生成绩,函数fun的功能是:统计80到89分各分数的人数和此分数段的...
指出以下程序的错误并改正,上机把程序调通
下面程序中函数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);
} 展开
下面程序中函数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);
} 展开
2个回答
展开全部
改动了些,没问题了,你自己看吧
#include<stdio.h>
#define N 20
float fun(float s[N], int n)
{
int k;float ave,t,sum=0.0;
for(k=0; k<n; k++)
{
t=s[k]-80;
sum+=s[k];
}
ave=sum/n;
return(ave);
}
void main()
{
float s[N];
float ave, a;
int n[10]={0,0,0,0,0,0,0,0,0,0}, i=0,j;
printf("\nPlease enter the mark:");
scanf("%f", &a);
while(a>0)
{
if(a>=80 && a<=89)
{
s[i]=a;
i++;
}
scanf("%f", &a);
}
ave=fun(s, i);
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(s[j]==80+i)n[i]++;
for(i=0; i<10; i=i+2)
printf("%d:%d %d:%d\n", 80+i, n[i], 81+i, n[i+1]);
printf("average:%.1f\n",ave);
}
#include<stdio.h>
#define N 20
float fun(float s[N], int n)
{
int k;float ave,t,sum=0.0;
for(k=0; k<n; k++)
{
t=s[k]-80;
sum+=s[k];
}
ave=sum/n;
return(ave);
}
void main()
{
float s[N];
float ave, a;
int n[10]={0,0,0,0,0,0,0,0,0,0}, i=0,j;
printf("\nPlease enter the mark:");
scanf("%f", &a);
while(a>0)
{
if(a>=80 && a<=89)
{
s[i]=a;
i++;
}
scanf("%f", &a);
}
ave=fun(s, i);
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(s[j]==80+i)n[i]++;
for(i=0; i<10; i=i+2)
printf("%d:%d %d:%d\n", 80+i, n[i], 81+i, n[i+1]);
printf("average:%.1f\n",ave);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询