以递归方式查找整数数组

时间:2015-04-26 04:53:42

标签: 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(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);

}


}

1 个答案:

答案 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 --;

请注意,您在此过程中更改了数组,不确定这是否是您要执行的操作。