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

admin2021-02-25  33

问题 以下函数中,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/eOz0FFFM
0

最新回复(0)