问题 单项选择题

下列函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。 #define MIN-2147483647 int findmax(int x[],int n) { int i,max; for(i=0;i<n;i++) { max=MIN; if(max<x[i]) max=x[i];} return max; } 造成错误的原因是( )。

A.定义语句int i,max;中max未赋初值

B.在赋值语句max=MIN;中,不应给max赋MIN值

C.语句id(max<Xmax=X中判断条件设置错误

D.赋值语句max=M1N;放错了位置

答案

参考答案:D

解析: 循环语句应该是对每一个数组中的元素与 max值作比较,如果大于max,则将该值赋值给max,这样就会输出最大值。而本题中每次循环中max的值都被赋值为MIN,所以都是MIN与数组中值的比较,最后只是输出比MIN大的一个值,而不是所有值中的最大值,所以max=MIN赋值语句应放在for循环之前。

单项选择题
单项选择题