问答题
下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数作为函数值返回,平均分存放在形参aver所指的存储单元中。
例如,输入8名学生的成绩:80.5、60、72、90.5、98、51.5、88、64,则低于平均分的学生人数为4(平均分为755625)。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define N 20
int fun(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 s[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",s+i);
printf("/nThe number of students:%d/n",fun(s,m,&aver));
printf("ave=%f/n",aver);
}