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

admin2020-07-28  29

问题 以下函数中,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://jikaoti.com/ti/bBD0FFFM
0

最新回复(0)