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

admin2022-06-24  22

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

选项 A、定义语句int i,max;中max未赋初值
B、赋值语句max=MIN;中,不应给max赋MIN值
C、语句if(max<x)max=x;中判断条件设置错误
D、赋值语句max=MIN;放错了位置

答案D

解析 本题中for循环中首先将MIN值赋值给max,然后用x与max的值比较。每次都是将MIN值与x值进行比较,所以无论x的值是什么,都不会影响if的判断语句,max=x始终执行,所以函数返回的是数组中最后一个元素的值。本题的错误在于max=MIN的位置,for循环之前应先执行max=MIN。
转载请注明原文地址:https://jikaoti.com/ti/p6d0FFFM
0

最新回复(0)