单选题 下列函数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; } 造成错误的原因是( )。
【正确答案】 D
【答案解析】[解析] 循环语句应该是对每一个数组中的元素与 max值作比较,如果大于max,则将该值赋值给max,这样就会输出最大值。而本题中每次循环中max的值都被赋值为MIN,所以都是MIN与数组中值的比较,最后只是输出比MIN大的一个值,而不是所有值中的最大值,所以max=MIN赋值语句应放在for循环之前。