2016-12-24 50 views
-2
#include <iostream> 
#include <cmath> 
#include <math.h> 
using namespace std; 


int reversedArray(int* x) 
{ 
    if(*x != 0){ 
     reversedArray(x+1 ); 
    } 

    cout<<*x << " " ; 
} 


int main() 
{ 
    int Array[] = {10,2,3,4,8 ,0} ; // I use '0' entry, as the EOF of this array. I dont want it to be printed. 
    int* p_Array = Array; 
    reversedArray(Array); 
} 

在这段代码中,我想使用递归来反转数组的输入。 我想到了用指针这种方式。在阵列在C++中用指针查找数组的EOF

int Array[] = {10,2,3,4,8 ,0} 

我使用0的输入,作为自定义EOF,使得在if(*x != 0) 语句,我有一个条件以结束递归。 但是,我不想'0'被打印。我能做什么 ?

+1

移动一个'}'... – LogicStuff

+0

你的意思是:D? – user7337722

+0

你也可以使用'std :: reverse(begin(Array),end(Array));'和'for(auto i:Array)cout << i <<“”;'并且忽略'0'字符... –

回答

0

只需在您的reversedArray函数中移动cout<<*x << " " ;if-block内的声明。

int reversedArray(int* x) 
{ 
    if(*x != 0){ 

    reversedArray(x+1 ); 

     cout<<*x << " " ; 
    } 
}