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

    [c]salve ho implementato un programma per la gestione di una biblioteca..

    ho un problema quando voglio sapere la disponibilità di un dato libro......se il libro c è non ho problemi funziona...ma se il libro non c è mi chiude l esecuzione del programma...vi posto il frammento di codice che mi da problemi
    codice:
     
    
    
    int cerca(char*t)
    {
    struct libro *lib; 
    for(lib=biblioteca;lib && strcmp(lib->titolo,t)!=0;lib=lib->next);
    if(strcmp(lib->titolo,t)==0)
    return 1;
    else
    return 0;
    }
    mentre nel main la funzione l ho implementata cosi...
    codice:
     
    printf("titolo\n");
            gets(titolo);
            fflush(stdin);
    if(cerca(titolo)==1)
    printf("libro disponibile\n");
    else 
    printf("libro non disponibile\n");

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Scusa, ma se lib è NULL, che succede?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    l esecuzione del programma si arresta

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da rossonero922
    l esecuzione del programma si arresta
    Ovvero va in errore ... cioè quel codice (della funzione cerca) non è corretto ... rivedilo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    come mi consigli di modificarlo?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Per quello che ti ho detto dovresti modificare la if nella cerca per controllare che lib non sia NULL ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    int cerca(char*t)
    {
    struct libro *lib;
    for(lib=biblioteca;lib && strcmp(lib->titolo,t)!=0;lib=lib->next);
    if(lib)
    return 1;
    else
    return 0;
    }



    cosi quindi dovrebbe andare?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Scusa ... ma dovresti saperlo tu se può andare ... non l'hai scritto tu il codice?

    Non mi pare che possa andare perché la strcmp mi sembra comunque necessaria oltre al controllo che hai fatto ... quindi

    if(lib && strcmp(lib->titolo,t)==0)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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