Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    14

    [C++]Funzione Ricorsiva elementi divisibili in un array

    Salve a tutti!!
    Innanzitutto buongiorno.
    Volevo sottoporvi un esercizio in c++ che devo svolgere in previsione di un esame.
    Praticamente il testo dice di scrivere una funzione ricorsiva che conta in un array di dimensione N quanti elementi siano divisibili per un certo parametro D. La soluzione che ho pensato è la seguente, ma a quanto pare non funziona. Non posso usare puntatori e/o riferimenti. Un grazie immenso a chi mi aiuta! =) PS: posto solo il codice della funzione, per brevità, anche perchè il main poi lo gestisco bene da solo. Grazieeee!!!
    codice:
    int conta_divisibili (int a[], int n, int d){
    
        int conta = 0;
    
        int resto;
    
        int temp;
    
        if (n==0){
    
            resto = a[0]%d;
    
            if (resto == 0){
    
                conta++;
    
            }
    
            return conta;
    
        }
    
        else{
    
                temp = conta_divisibili(a,n-1,d);
    
                return temp;
    
            }
    }

  2. #2
    Ciao,
    ci sono varie cosette che non stanno in piedi come organizzazione logica in questo codice, ma la principale è che è ricorsivo solo a metà (cioè solo quando entra nell'ELSE)....
    intanto potresti iniziare a ragionare su questo...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    14
    Ciao Philibert,
    intanto grazie per la risposta.
    ho modificato il codice in questo modo,
    codice:
    int conta = 0; // variabile globale
    
    int conta_divisibili (int a[], int n, int d){
    
    
    
        int resto;
    
        if (n == 0){
    
            return 0;
    
        }else
    
        if (n==1){
    
            if (a[0]%d == 0){
    
                conta++;
    
            }
    
        }else{
    
        conta =  conta_divisibili(a,n-1,d);
    
        }
    
        return conta;
    }
    però continua a non fare quello che gli chiedo, o meglio, nell'output del main, restituisce troppi valori. Dove sbaglio?? perchè è ricorsivo a metà??
    Grazie per l'attenzione e la pazienza

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 © 2025 vBulletin Solutions, Inc. All rights reserved.