给定程序MODI1.C中函数fun的功能是:由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。 例如,n=8时,输入:193.199,195.673,195.757,196.051,196.092,196.596,196.579

admin2020-04-18  66

问题 给定程序MODI1.C中函数fun的功能是:由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。
  例如,n=8时,输入:193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763
  所得平均值为:195.838745,在平均值以上的实数个数应为:5
  请改正程序中的错误,使程序能输出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#inclUde <Stdio.h>
int fun(double x[],int n)
{
/**********found**********/
  int j,c=0,double xa=0.0;
    for(j=0;j<n;j++)
      xa +=x[j]/n;
  printf("ave=%f\n",xa);
  for(j=0;j<n;J++)
/**********found**********/
    if (x[j] => xa)
      c++;
    return c;
}
main()
{  double x[100]={193.199,195.673,195.757,196.051,196.092,196.596,
196.579,196.763);
  printf("%d\n",fun(x,8));
}

选项

答案(1)int j, c=0; double xa=0.0; (2)if (x[j]>=xa)

解析 (1)第一标识下是两个变量定义语句,变量j和c是整型变量,而变量xa是双精度浮点变量,应该分别定义,而不是在一个语句中,因此第一标识下应改成“int j,c=0;double xa=0.0;”。
    (2)第二标识下是用if判断x[j]是否大于等于xa,“=>”不是C语言的运算符,在C语言中大于等于用“>=”表示,因此第二标识下应改成“if(x[j]>=xa)”。
转载请注明原文地址:https://kaotiyun.com/show/7kCp777K
0

最新回复(0)