Ciao a tutti. Ho iniziato ora a ri-studiare (seriamente) il linguaggio C.
Nonostante non sia un programmatore neofita, non riesco a capire dove si trova l'errore in questo blocco:
do {
printf("Inserisci l'operatore (+, -, *, /): ");
scanf("%c", &op);
if (op != '+' && op != '-' && op != '*' && op != '/') {
printf("\nErrore di inserimento!\n\n");
i = 0;
} //end if
else {
i = 1;
} //end else
} //end do
while (i == 0);
Una volta compilato e avviato, il programma esegue tutte le istruzioni contenute nel DO senza contare la presenza dell'IF, per poi tornare indietro e svolgere tutto come dovrebbe. Mi spiego, l'output ottenuto è:
[...]
Inserisci l'operatore (+, -, *, /):
Errore di inserimento!
Inserisci l'operatore (+, -, *, /):
//solo a questo punto è possibile inserire effettivamente l'operatore e da qui in poi tutto regolare.
[...]
Vorrei capire se si tratta di un mio errore, oppure se (cosa che escludo al 90%) è un errore nella compilazione.
Vi prego sto impazzendo!
Grazie!
(compilo con gcc per mac da terminale)

Rispondi quotando