我需要递归地找到整数数组中的最大数字。我的功能崩溃但我找不到错误。这是我的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(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);
}
}
答案 0 :(得分:0)
这是一个问题:
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 --;
请注意,您在此过程中更改了数组,不确定这是否是您要执行的操作。