C函数用于查找整数数组中的最大元素

时间:2014-04-24 00:04:00

标签: c testing

考虑C函数

int largest(int list[], int n, int l);
  • listn整数的列表。
  • l是函数的临时空间

该函数应该返回数组nlist整数列表中的最大整数。

int largest(int list[], int n, int l) {
   int i;
   for(i=0; i<n; i++) {
      if(list[i] > l) {
         l = list[i];
      }
   }
   return l;
}

为什么这个函数有时会返回坏数据?

2 个答案:

答案 0 :(得分:2)

在我看来,您正在尝试打印值l,但实际上并未存储函数的返回值。您也不需要将l作为参数传递给您的函数。

请改为:

   // Declare the function prototype without int l.
   int largest(int list[], int n);

   // Actual function that searches for largest int.
   int largest(int list[], int n) 
   {
      int i;
      int l = list[0]; // Point to first element. 

      // Notice loop starts at i = 1.
      for(i = 1; i < n; i++) 
      {
         if(list[i] > l) 
           l = list[i]; 
      }

      return l;
   }

然后你在哪里调用你的函数:

int l = largest(list, n);

上面的代码只是确保您存储函数返回的值。

答案 1 :(得分:0)

您永远不会初始化l,因此如果列表中的所有项都不大于它,它将返回此值的现有值。如果你从未在调用函数中初始化它,那么行为是未定义的,这将解释你的错误数据&#34;。