我有這個程序使用遞歸找到數組中最大的整數,但它不斷返回輸入的最後一個數字,而不管最大數值是多少。我該如何解決?使用遞歸問題的一個數組的C++最大值
#include <iostream>
using namespace std;
int maximum(int digits[], int size, int largest, int i);
void main()
{
const int size = 3;
int digits[size];
int n = 0, x = 0;
for(int a = 0; a < size; a++)
{
cout << "Enter an integer <" << ++x << " out of " << size << ">: ";
cin >> digits[n];
}
cout << "\nThe largest digit is, " << maximum(digits, size, 0, 0) << ", thank you!\n";
cout << endl;
}
int maximum(int digits[], int size, int largest, int i)
{
if (i < size)
{
if (largest < digits[i])
largest = digits[i];
maximum(digits, size, largest, i + 1);
}
return largest;
}
您是否仔細追蹤過每一行的功能,並將其與您期望的相比較(例如,使用調試器)? – chris 2015-04-01 02:14:11
我有,這似乎是正確的,我多數民衆贊成爲什麼我卡住 – beginnerjohn 2015-04-01 02:17:41
@beginnerjohn,如果每一行的執行似乎正確的執行(所有變量都有預期的值,該行是你期望的下一行),然後,然後該程序按照您的預期工作。 – chris 2015-04-01 02:32:42