Non trovo l'errore

di il
4 risposte

Non trovo l'errore

Ciao a tutti, sono una recluta del linguaggio C, compilando questo programmino, mi accorgo che funziona ma c'è un piccolo difetto: l'ultima voce ("Vuoi ricominciare il ciclo?") quando appare appare 2 volte non so spiegarmi il perchè, ecco il mio programma:
#include<stdio.h>
#include<stdlib.h>
main()
{
int a,b;
char j;
lk:
printf("Inserisci il numero\n");
scanf("%d" , &a);
if(a*a*a < 0)
{
b=a*a;
}
else
{
b=a*a*a;
}
printf("Il risultato e' %d\n" , b);
jk:
printf("Vuoi ricominciare il ciclo (s,n)?\n");
scanf("%c" , &j);
switch(j)
{
case 's':
goto lk;
break;
case 'n':
exit(0);
break;
default:
goto jk;
}
system("pause");
}

4 Risposte

  • Re: Non trovo l'errore

    Ciao,
    l'"errore" era nella lettura del carattere.
    Metti
    scanf(" %c" , &j);
    per eliminare i leading white-spaces (caratteri speciali che restano nel buffer).

    PS. GOTO? Oh my God!
  • Re: Non trovo l'errore

    Grazie minomic per la disponibilità. Sono alle prime armi, potresti dirmi cosa c'è di male nel goto, con cosa dovrei sostituirlo?
  • Re: Non trovo l'errore

    Mattia oltre al basic il go to è deprecato in linguaggi queli il C dovresti utilizzare while for ecc per ottenere gli stessi risultati

    Inviato dal mio LG-E440 utilizzando Tapatalk
  • Re: Non trovo l'errore

    Ok grazie
Devi accedere o registrarti per scrivere nel forum
4 risposte