填空题 在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。
例如:数组中元素的值依次为43,47,-21,53,-8,12, 0,则程序的运行结果为-25.333333。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
double fun(int x[])

double sum=0.0;
int c=0,i=0;
/*************found*************/
while(x[i]==0)

if(x[i]<0)

sum=sum+x[i];
c++;

i++;

/************found***********/
sum=sum/c;
return sum;


main()

int x[1000];
int i=0;
clrscr();
printf("/nPlease enter some data(end with
0) :”);
do

scanf("%d",&x[i]);
while(x[i++]!=0);
printf("%f/n",fun(x));


  • 1、
【正确答案】 1、{{*HTML*}}(1) 错误:while(x[i]==0) 正确:while(x[i]!=0)
(2) 错误:sum=sum/c; 正确:sum=sum/c;    
【答案解析】[解析]错误1:此处考查的是对循环条件的理解,当被判断的数组元素为0时,说明这是数组的最后一个元素,此时要跳出循环。错误2:C语言中的除法运算符是“/”,而不是“/”。