在主函数中从键盘输入若干个数放入数中,用0结束输入并放在最后一个元素中。给定程序MODll.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。 例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果

admin2013-06-12  27

问题 在主函数中从键盘输入若干个数放入数中,用0结束输入并放在最后一个元素中。给定程序MODll.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。
    例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为:19.250000。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
double fun (int x[])
{
/************found************/
  int sum=0.0;
  int c=0, i=0;
  while (x != 0)
  {if (x > 0) {
       sum += x; c++;}
    i++;
  }
/************found************/
  sum\=c;
  return sum;
}
main()
{int x[1000]; int i=0;
   printf("\nPlease enter some data (end with 0): ");
   do
     {scanf("%d", &x);}
   while (x[i++] != 0);
   printf("%f\n", fun (x));
}

选项

答案double sum=0.0; sum/=c;

解析 (1)fun函数的返回值是double型,返回值sum的定义类型原题定义为int型,与fun的定义类型不符,所以将“int sum=0.0;”改为“double sum=0.0;”。
(2)第二个标识下的“sum\=c;”语句中的“\”符号是非法符号,这里应该是除号。所以,第二个标识下“sum\=c;”应该改为“sum/=c;”。
转载请注明原文地址:https://kaotiyun.com/show/vrJp777K
0

最新回复(0)