填空题

下列给定程序中,函数proc()的功能是:从m个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:
98 78 67 56 34 89.5 78.5 76.5
则低于平均分的学生人数为3(平均分为72.187500)。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define M 20
int proc(float*s,int n,float*aver)
float ave,t=0.0;
int count=0,k,i;
for(k=0;k<n;k++)
//****found****
t=s[k];
ave=t/n;
for(i=0;i<n;i++)
if(s[i]<ave)count++;
//****found****
*aver=&ave;
return count;
}
void main()
{
float stu[30],aver;
int m,i;
system("CLS");
printf("\nPlease enter m:");scanf
("%d",&m);
printf("\nPlease enter%d mark:n",m);
for(i=0;i<m;i++)scanf("%f",stu+i);
printf("\nThe number of students:
%d\n",proc(stu,m,&aver));
printf("Ave=%f\n",aver);
}

【参考答案】

错误:t=s[k];
正确:t+=s[k];
错误:*aver=&ave;
正确:*ave......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)