Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    esercizio sulla ricorsione

    Salve, stò svolgendo questo esercizio sulla ricorsione,ma non funziona.
    Qualcuno sa come risolvere?
    Grazie

    /*

    Testo :
    Sia assegnato un vettore A di interi di dimensione N.
    Scrivere una funzione ricorsiva che calcoli il massimo valore
    tra gli elementi di A.
    */


    #include<cstdlib>
    #include<iostream>

    void inserimento(int[], int, int);
    void controllamax(int[], int, int);
    int massimo(int[], int, int, int);


    using namespace std;
    int main(){
    int i=0, n=0, max=0;
    cout<<"Inserire il numero di elementi che si desidera inserire nell'array\n";
    cin>>n;
    int v1[n];
    inserimento(v1, n, i);
    max=v1[i];
    i++;
    cout<<massimo(v1, n, max, i);
    system("pause");
    }

    void inserimento(int v1[], int n, int i){
    while(i<n){
    cout<<"Inserire il "<<i+1<<" elemento dell'array : ";
    cin>>v1[i];
    i++;
    }
    }

    void controllamax(int v1[], int max, int i){
    if(v1[i]>max)
    max=v1[i];
    }

    int massimo(int v1[], int n, int max, int i){
    if(i>n)
    return 0;
    else{
    controllamax(v1, max, i);
    return massimo(v1, n, max, i+1),max;
    }
    }

  2. #2

  3. #3
    lo compila e lo esegue
    solo che mi stampa 0
    cioè io inserisco 4 elementi
    1 - 5 -2 -2

    mi dovrebbe stampare 5
    invece stampa 0

    sai come mai?
    grazie

  4. #4

    risolto

    ho risolto,
    grazie lo stesso

    stavano degli errori sulla function finale
    se ti può interessare il codice, lo posto :

    /*

    Testo :
    Sia assegnato un vettore A di interi di dimensione N.
    Scrivere una funzione ricorsiva che calcoli il massimo valore
    tra gli elementi di A.
    */


    #include<cstdlib>
    #include<iostream>

    void inserimento(int[], int, int);
    int massimo(int[], int, int, int);


    using namespace std;
    int main(){
    int i=0, n=0, max=0;
    cout<<"Inserire il numero di elementi che si desidera inserire nell'array\n";
    cin>>n;
    int v1[n];
    inserimento(v1, n, i);
    i=0;
    max=v1[i];
    i++;
    cout<<massimo(v1, n, max, i);
    system("pause");
    }

    void inserimento(int v1[], int n, int i){
    while(i<n){
    cout<<"Inserire il "<<i+1<<" elemento dell'array : ";
    cin>>v1[i];
    i++;
    }
    }


    int massimo(int v1[], int n, int max, int i){
    if(i>n)
    return max;
    else if(v1[i]>max)
    return massimo(v1, n, max=v1[1], i+1);
    else
    return massimo(v1, n, max, i+1);

    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.