改错题
下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在行参aver所指的存储单元中。例如,若输入8名学生的成绩:
80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为4(平均分为:75.5625).
请改正程序中的错误,使程序能统计出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:#include
#include
#define N 20
int fun(float *s, int n, float *aver)
{
float ave, t = 0.0;
int count = 0, k, i;
/********found********/
for (k=0; k t = s[k]; ave = t/n; for (i=0; i if (s[i] < ave) count++; /********found********/ *aver = &ave; return count; } main() { float s[30], aver; int m, i; printf("\nPlease enter m: "); scanf("%d", &m); printf("\nPlease enter %d mark :\n ", m); for (i=0; i scanf("%f", s+i); printf("\nThe number of students : %d\n", fun(s, m, &aver)); printf("Ave=%f\n", aver); } 第1处:t=s[k];应改为t+=s[k]; 第2处:*aver=&ave;应改为*aver=ave; 编辑推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |