问题 问答题

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

解析:错误1:此处考查的是对循环条件的理解,当被判断的数组元素为0时,说明这是数组的最后一个元素,此时要跳出循环。错误2:C语言中的除法运算符是"/",而不是"\"。

解答题
单项选择题