Visualizzazione dei risultati da 1 a 3 su 3

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    12

    Esercizio funzione ricorsiva linguaggio C

    Ciao a tutti devo affrontare un esame universitario ma proprio non capisco questo codice che utilizza una funzione ricorsiva. La consegna è: Scrivere una funzione ricorsiva C che produca il massimo intero dispari in un dato vettore di n variabili intere (0 se il vettore non contiene interi dispari).

    Il professore ha dato questa soluzione ma io non riesco a capire come funzioni, mi sembra errata ma probabilmente sono io che non riesco a ragionare come lui..
    codice:
    int div (int v[], int n, int x) {
        int ris;
        if(n==0) return 0;
        ris=div(&v[1],n-1,x);
        if(x%v[0]==0)
            ris++;
        return ris;
    }
    grazie mille ciao
    Ultima modifica di MItaly; 03-02-2015 a 00:05 Motivo: Tag CODE, indentazione

  2. #2
    Il programma in questione produce il numero totale di valori nell'array per cui x è esattamente divisibile... forse hai copiato male, o semplicemente questo era un esempio generale su come affrontare questo tipo di problemi.

    Comunque, se capisci questo esempio sarà banale scrivere il tuo esercizio:
    codice:
    /**
     * Restituisce il numero di elementi di v per cui x è divisibile
     */
    int div (int v[], int n, int x) {
        int ris;                // risultato della funzione
        if(n==0) return 0;      // caso base: mi è stato passato un vettore vuoto, restituisco zero
    
        ris=div(&v[1],n-1,x);   // passo ricorsivo: calcolo il valore di questa funzione sull'array
                                // "accorciato" (dal secondo elemento in poi)
    
        if(x%v[0]==0)           // considero il primo elemento (l'unico non considerato dal passo ricorsivo)
            ris++;              // se x è divisibile per esso, allora devo aggiungere uno alla risposta
    
        return ris;             // restituisco il valore calcolato
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    12
    Grazie mille credo di aver capito!!! ciao buona giornata

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.