m个人的成绩存放在$eore数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。 例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人

admin2017-09-23  41

问题 m个人的成绩存放在$eore数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
    例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。
    注意:部分源程序在文件PROG1.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
    试题程序:
#include < conio.h >
#include < stdio.h >
#include < string.h >
#include < stdlib.h >
int fun(int score[],int m,int below[])
{

}
void main()
{
  FILE*wf;
  int i,n,below[9];
  2nt score[9]={10,20,30,40,50,60,70,80,90);
  system("CLS");
  n=fun(score,9,below);
  print;f("\nBelow the average
SCOEe are:");
  for(i=0;i < n;i++)
  printf("%d",below);
/******************/
  wf=fopen("out.dat","w");
  for(i=0;i < n;i++)
  fprint:f(wf,"%d",below);
  fclose(wf);
/******************/
}

选项

答案int fun (int score[ ],int m, int be { int i,j =0; float av =0 .0; for (i =0;i < m;i++) av=av+score[i]/m; /*.求平均值*/ for(i=0;i < m;i++) if (score[i] <av)/*如果分数低于平均分,则将此分数放入below数组中*/ below[j++]=score[i]; return j;/*返回低于平均分的人数*/ }

解析 要计算低于平均分的人数,首先应该求出平均分,然后通过for循环语句和if条件语句找出低于平均分的分数。该题第1个循环的作用是求出平均分av,第2个循环的作用是找出低于平均分的成绩记录并存入below数组中。
转载请注明原文地址:https://jikaoti.com/ti/lea0FFFM
0

最新回复(0)