Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 递归查找整数数组中的最大数_C++_Arrays_Recursion - Fatal编程技术网

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

我需要递归地找到整数数组中的最大数。我的函数崩溃了,但我找不到错误。这是我的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);

}


}
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],要么这个数字不存在。但我不知道为什么它不会进入。