单选题 以下函数中,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
【答案解析】解析:本题中for循环中首先将MIN值赋值给max,然后用x[i]与max的值比较。每次都是将MIN值与x[i]值进行比较,所以无论x[i]的值是什么,都不会影响if的判断语句,max=[i]始终执行。所以函数返回的是数组中最后一个元素的值。本题的错误在于max=MIN的位置,for循环之前应先执行max=MIN。