2016-12-24 10 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} 

では、私はカスタムEOFとして、0の入力を使用しif(*x != 0) 声明の中で、私は再帰を終了する条件を持っているようにします。 しかし、私は '0'を印刷したくありません。私に何ができる ?

+1

移動しますか?} '... – LogicStuff

+0

あなたは何を意味しますか? – user7337722

+0

また、 'std :: reverse(begin(Array)、end(Array));'と 'for(auto i:Array)cout << i <<" ";'を使用して '0'の文字を省略することもできます... –

答えて

0

あなたのreversedArray機能でif-blockの内部にcout<<*x << " " ;ステートメントを移動するだけです。

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

    reversedArray(x+1 ); 

     cout<<*x << " " ; 
    } 
} 
関連する問題