C++ 递归查找整数数组中的最大数
我需要递归地找到整数数组中的最大数。我的函数崩溃了,但我找不到错误。这是我的C++代码:C++ 递归查找整数数组中的最大数,c++,arrays,recursion,C++,Arrays,Recursion,我需要递归地找到整数数组中的最大数。我的函数崩溃了,但我找不到错误。这是我的C++代码: void Numbers::compare(int size) { if(size == 0) cout << "You must enter an number!" << endl; if(size ==1) cout << "The max number is " << numArray[0] << endl; if(si
void Numbers::compare(int size)
{
if(size == 0)
cout << "You must enter an number!" << endl;
if(size ==1)
cout << "The max number is " << numArray[0] << endl;
if(size >1)
{
if(numArray[size-1] > numArray[size-2])
{
int temp = 0;
numArray[size-1] = temp;
temp = numArray[size-2];
numArray[size-2]= numArray[size-1];
size --;
}
size = size -1 ;
compare(size);
}
}
void number::compare(整数大小)
{
如果(大小==0)
cout这里有一个问题:
int temp = 0;
numArray[size-1] = temp; // set numArray[size-1]=0
temp = numArray[size-2];
numArray[size-2]= numArray[size-1];// set numArray[size-2]= 0
size --;
将整个数组设置为0
你想做什么:
int temp = numArray[size-2];
numArray[size-2] = numArray[size-1];
numArray[size-1]= temp
size --;
请注意,您在过程中更改了数组,但不确定这是否是您的本意。当它崩溃时报告的错误是什么?似乎是我无意中设置了断点。我刚刚清除了它,现在它可以正确编译。但是,它不会给我正确的答案。它总是给我numArray[0].是的,我想你指出了问题所在,但你的代码没有解决问题。它一直给我数组的第一个数字。我只是做了另一个测试。问题是:它永远不会进入if(size>1)。所以它要么给我numaray[0],要么这个数字不存在。但我不知道为什么它不会进入。