单选题
下列函数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循环之前。