【发布时间】:2019-12-04 05:28:05
【问题描述】:
我正在尝试创建一个递归函数,该函数在数组中的低整数和高整数之间找到最大数。
我已经尝试过这个函数,它可以帮助递归地找到数组中的最大元素。我只是在如何添加到接受低整数和高整数的函数来找到这两个之间的最大值时遇到了麻烦。
int findMaxRec(int A[], int n)
{
// if n = 0 means whole array has been traversed
if (n == 1)
return A[0];
return max(A[n-1], findMaxRec(A, n-1));
}
我们的目标是拥有一个看起来像这样的函数:
int findMaxBetwen(int A[], int low, int high){
//Here is where I need help integrating if lets say the array is A[] = 5,6,7,8
// Call findMaxBetwen(A[], 5, 8) and the output gives 7 because that is the max between the 3
//integers.
}
【问题讨论】:
-
有什么问题?我不知道如何回答这个问题而不破坏你的所有乐趣
-
提示:在你当前的函数中,是什么导致在第一个元素处停止?从最后一个元素开始的原因是什么?确定这两个并将其替换为从
high开始并在low停止 -
我现在仍然有点困惑,在我的驱动程序代码中 n 表示为 sizeof(A)/sizeof(A[0]) 这给出了数组长度的大小。所以我应该用低和高替换我当前代码的 n 部分吗??
-
什么驱动代码?你应该?我不知道,因为我不知道代码。当你尝试时会发生什么?