[英]find max and min of array c++ using recursion without changing function
我需要幫助嘗試在 C++ 中遞歸地查找數組中的最小值和最大值。 功能是給定的,不能改變。
我對兩者都進行了嘗試,但由於某種原因沒有任何反應,代碼沒有進入循環,我想知道我做錯了什么。 這是我的 main 和 min 和 max 函數。
int main()
{
int array[] = { 46, 22, 7, 58, 91, 55, 31, 84, 12, 78 };
if (findMax(array, 10) == 91)
{
cout << "findMax is correct!" << endl;
}
if (findMin(array, 10) == 7)
{
cout << "findMin is correct!" << endl;
}
int findMax(int array[], int size)
{
int i = (size - 1);
int max = 0;
if (array[0] < array[i]) {
max = array[i];
findMax(array, size - 1);
}
return max;
return 0;
}
int findMin(int array[], int size)
{
int i = 0;
int j = size - 1;
if (i == j)
{
return array[i];
i++;
}
int temp = findMin(array, size);
if (array[i] < temp)
{
return array[i];
}
else
{
return temp;
}
}
}
好吧,您只需向后返回,返回每對元素的最小值,然后下一級使數組大小變小。 例子:
int findMin(int array[], int n)
{
// if size = 0 means whole array has been traversed
if (n == 1){
return array[0];
}
return min(array[n-1], findMin(array, n-1));
}
您可以使用相同的方法執行findMax
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.