ciao a tutti volevo sapere alcune cose a riguardo dell' if:
questo è il mio codice, in teoria dovrebbe funzionare tutto quello che volevo sapere è:codice:printf("\nDigita la lettera da inserire nel nodo...: "); getchar(); scanf("%c", &lettera); if ( lettera =='A' || lettera =='E' ) { lettera = printf(" la lettera utilizzata è giusta\n "); } else { printf("hai sbagliato devi inserire A or E \n"); printf("scegli uno delle due lettere: A or E \n"); getchar(); scanf("%c", &lettera); } printf("\nDigita la variabile da inserire nel nodo...: "); getchar(); scanf("%c", &variabile); if ( variabile >= 'a' && variabile <= 'm' ) { variabile = printf(" la variabile utilizzata è corretta\n "); } else { printf("hai sbagliato.. devi inserire una lettera compresa tra a e m \n"); getchar(); scanf("%c", &variabile); }
1) è possibile renderlo più compatto ad esempio, invece di fare due if separati con i relativi else, è possibile farne soltanto 1? non so!
2) ho messo: getchar() prima della scanf, perchè girando tra vari forum ho visto che in quel modo funzionava non so il perchè! esiste un'implementazione fatta meglio? perchè non funzionava?
3) poi volevo fare che quando l'utente sbaglia ad inserire, gli stampa che ha sbagliato e che lo deve reinserire.
però nel codice che ho scritto quando l'utente inserisce il valore esatto va avanti senza nessun problema ma se inserisce il valore sbagliato, gli dice che ha sbagliato e gli fa reinserire un'altro valore, ma a quel punto l'utente può inserire quello che vuole e il programma va avanti comunque perchè? dove sbaglio?
4) avevo creato una funzione che mi creava un nodo:
questi controlli li devo mettere dentro la funzione oppure li devo mettere a parte?
5) avevo messo tutte quelle printf solo per controllare se tutto quanto veniva eseguito in modo giusto..
vi prego aiutatemi devo correggere queste cose al più presto
ciao aspetto una vostra risposta al più presto
grazie a tutti in anticipo!!

Rispondi quotando