使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modi1.C。在此程序中,函数fun()的功能是从n个学生的成绩中统计出低于平均分的学生人数,并将此人数作为函数值返回,平均分存放在形参aver所指的存储单元

admin2023-02-27  11

问题 使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modi1.C。在此程序中,函数fun()的功能是从n个学生的成绩中统计出低于平均分的学生人数,并将此人数作为函数值返回,平均分存放在形参aver所指的存储单元中。
    例如,输入8名学生的成绩:80.5、60、72、90.5、
98、51.5、88、64,则平均分为75.5625,低于平均分的学生人数为4。
    请改正程序中的错误,使它能得出正确的结果。
    注意:部分源程序在文件modil.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdlib.h>
2 #include<stdio.h>
3 #include<conio.h>
4 #define N 20
5 int fun(float*s,int n,float*aver)
6 {float ave,t=0.0;
7  int count=0,k,i;
8  for(k=0;k<n;k++)
9  /*********found*********/
10    t=s[k];
11  ave=t/n;
12  for(i=0;i<n;i++)
13    if(s<ave)count++;
14  /*********found*********/
15  *aver=&ave;
16  return count;
17  }
18  void main()
19 {float s[30],aver;
20  int m,i;
21  system("CLS");
22  printf{"\nPlease enter m:");
23  scanf("%d",&m);
24 printf("\nPlease enter%d mark:\n",m);
25  for(i=0;i<m;i++)
26    scanf("%f",s+i);
27 printf("\nThe number of students:%d\n",fun(s,m,&aver));
28  printf("Ave=%f\n"。aver);
29 }

选项

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

解析 (1)函数fun()中,第1个for循环求数组s各个元素的平均值。需要将每个元素值累加到变量t,再用变量t除以变量n,所以应改为t+=s[k];。
    (2)函数fun()中,第2个for循环求数组s小于平均值的元素个数。循环结束后,将平均值保存到变量liver中,所以应改为*aver=ave;。  
转载请注明原文地址:https://kaotiyun.com/show/rD0D777K
0

相关试题推荐
最新回复(0)