0

コードは以前は機能していましたが、現在は機能していません。ヘルプ。目的は、ユーザーが再帰を使用してベクトルを逆方向​​に見ることです。

int listar(int v[5], int l); 

void main(){ 
    int vector[5]={1,2,3,4,5}; 
    listar(vector,-1); 
} 

int listar(int v[5],int l){ 
    int n=0; 
    if (n<=5){ 
        cout<< listar(v, n+1)<< endl; 
    return v[n]; 
    } 
return v[5]; 
4

4 に答える 4

0

メソッドint listar(int v[5],int l){では、パラメーターlをまったく使用していません。n=0各再帰呼び出しを行う代わりに、コードがそれを使用するべきではありません。

于 2013-11-06T03:58:17.433 に答える
0

コードは再帰的です。listar によって呼び出される listar があります。

再帰は問題ありませんが、常に n を 0 に設定してから「if n<5」と言うと、無限再帰が発生します。

これがあなたの言いたいことだと思います:

int vector[5]={1,2,3,4,5}; 
    listar(vector,0); 
} 

int listar(int v[5],int l){  
    if (l<=5){ 
        cout<< listar(v, l+1)<< endl;
    }
    return v[l]; 

でもこれはかなり違う

于 2013-11-06T03:59:34.670 に答える