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

admin2021-07-09  25

问题 以下函数中,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=始终执行。所以函数返回的是数组中最后一个元素的值。本题的错误在于max=MIN的位置,for循环之前应先执行max=MIN。
转载请注明原文地址:https://kaotiyun.com/show/H4tp777K
0

最新回复(0)