以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能
#define MIN -2147463647
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. 语句if(max<x[i])max=x[i];中判断条件设置错误
D. 赋值语句max=MIN;放错了位置
答案:D
解析:如果要选出最大值,应在max小于当前项时,让max等于当前项。其他情况不对max赋值。而本题在每次执行for循环时都执行max=MIN;,破坏了判断流程,max=MIN;应放在for循环的前面。因此选D。