Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    La funzione è corretta, se vuoi esserne sicuro prova a fare i passaggi a mano!
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  2. #12
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da Scara95
    La funzione è corretta, se vuoi esserne sicuro prova a fare i passaggi a mano!
    E in cosa potrei aver sbagliato? La funzione è quella che ti ho scritto prima, se dici che va bene, allora non so perchè mi restituisce sempre 1..

    Ecco la funzione:

    codice:
    int campionati_pilota(TTree tree, char pilota[]){
        if(tree==NULL){
            return 0;
        }
        return (campionati_pilota(tree->left, pilota) + campionati_pilota(tree->right, pilota) + (!strcmp(tree->info.satellite.pilota, pilota))? 1 : 0);
    }

  3. #13
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Sei stato attento che magari il numero di occorrenze per quel pilota non sia proprio 1?
    Altrimenti posta il codice di inserimento e le strutture...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  4. #14
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da Scara95
    Sei stato attento che magari il numero di occorrenze per quel pilota non sia proprio 1?
    Altrimenti posta il codice di inserimento e le strutture...
    Le funzioni di inserimento e visualizzazione funzionano. Le ho testate. Se inserisco 2 campionati vinti dallo stesso pilota, mi restituisce 1, anzichè 2.
    La funzione la richiamo nel main così:
    codice:
    printf("Inserisci cognome del pilota: ");
    scanf("%s", pilota);
    campionati_vinti=campionati_pilota(tree, pilota);
    printf("%d\n", campionati_vinti);
    La struttura è questa:

    codice:
    struct SKey{
       int value;
    };   
    typedef struct SKey TKey;
    
    struct SSat {
       char pilota[MAXLEN_PILOTA];
       char team[MAXLEN_TEAM];
       int  vittorie_gp;
    };
    typedef struct SSat TSat;
    
    struct SInfo{
          TKey key;
          TSat satellite;
    };
    
    typedef struct SInfo TInfo;
    E non è scritta da me, ma era già fornita nella traccia (che è una prova d'esame).

  5. #15
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    codice:
    int campionati_pilota(TTree tree, char pilota[]){
        if(tree==NULL){
            return 0;
        }
        return (campionati_pilota(tree->left, pilota) + campionati_pilota(tree->right, pilota) + (!strcmp(tree->info.satellite.pilota, pilota) ? 1 : 0));
    }
    Prova così, con quella parentesi, ? : ha precedenza più bassa di +...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #16
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da Scara95
    codice:
    int campionati_pilota(TTree tree, char pilota[]){
        if(tree==NULL){
            return 0;
        }
        return (campionati_pilota(tree->left, pilota) + campionati_pilota(tree->right, pilota) + (!strcmp(tree->info.satellite.pilota, pilota) ? 1 : 0));
    }
    Prova così, con quella parentesi, ? : ha precedenza più bassa di +...
    Ora funziona! Potresti spiegarmi cosa significa "? 1 : 0", non ho mai scritto una cosa del genere. Comunque grazie mille per la pazienza e l'aiuto!

  7. #17
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    test ? risultato1 : risultato2

    test è un'equazione bolena.
    se test è true l'espressione ritorna risultato1
    se test è false l'espressione ritorna risultato2
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  8. #18
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da Scara95
    test ? risultato1 : risultato2

    test è un'equazione bolena.
    se test è true l'espressione ritorna risultato1
    se test è false l'espressione ritorna risultato2
    Tutto chiaro, grazie ancora!

  9. #19
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Prego
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.