给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。 例如,若输入.8名学生的成绩:80.5 60 72 90.5 98 51.5

admin2018-09-27  52

问题 给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
    例如,若输入.8名学生的成绩:80.5  60  72  90.5  98  51.5  88  64
    则低于平均分的学生人数为:4(平均分为:75.5625)。
    请改正程序中的错误,使它能统计出正确的结果。
    注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构!
1  #include<stdio.h>
2  #define N 20
3  int fun(float *s,int n,float*aver)
4  {  float ave,t=0.0;
5  int count=0,k,i;
6  for  (k=0  ;  k<n;  k++)
7  /**********found**********/
8    t=s[k];
9 ave=  t/n;
10    for  (i=0;  i<n;  i++)
11   if  (s  <ave)  count++  ;
12  /**********found**********/
13  * aver=Ave;
14  return count;
15  }
16  main()
17  {  float s[30],aver;
18  int m,i;
19  printf(’’\nPlease enter m:’’);scanf(’’%d’’,&m);
20  printf(’’\nPlease enter%d mark:\n’’,m);
21  for(i=0;i<m,i++)scanf(’’%f’’,s+i);
22  printf(’’\nThe number of students:%d\n’’,fun(s,m,&aver));
23    printf(’’Ave=%f\n’’,  aver);
24 }

选项

答案(1)t+=s[k]; (2)*aver=ave;

解析 程序功能是统计出低于平均分的学生人数。
    (1)根据题目要求求出平均分,首先要求总分,要把所有学生成绩相加再求平均分,因此第一个标识下面的“t=-s[k];”应改为“t+=s[k];”。
    (2)根据题目可知,比较的结果中低于平均分的分数ave放入指针aver所指的地址单元中,而变量Ave没有定义,因此,第二标识下应将“*aver=Ave;”改为“*aver=ave;”。
转载请注明原文地址:https://kaotiyun.com/show/58xp777K
0

最新回复(0)