Problema logica Switch richiesta spiegazione.

di il
2 risposte

Problema logica Switch richiesta spiegazione.

Ciao, ho un problema con il codice di cui sotto.
Il programma gira bene, ma quando sono alla fase che coinvolge questa istruzione switch mi da un problema di output molto banale, ma che non riesco a risolvere.

I pratica la domanda : "vuoi cambiare etc etc" mi viene proposta due volte.

invece di :

"Vuoi cambiare..."

l'output è :

"Vuoi cambiare..."
"Vuoi cambiare..."

poi l'inserimento dell'opzione y or n avviene normalmente senza problemi., ma non riesco ad evitare questo raddoppio di output.

Siccome mi capita spesso, qualcuno gentilmente mi spiega l'origine dell'errore che faccio?

Grazie.

for (contatore = 0 ; contatore <= 4 ; contatore++ ) {
		
		printf ("Vuoi Cambiare il %s di %s?\n", face[MPlayerONE[contatore]/10] , suit[MPlayerONE[contatore]%10] ) ;
		scanf ("%c", &ch ) ;
		
		
		switch ( ch ) {
			
			case 'Y' :
			case 'y' :
			
				MPlayerONE[contatore] = deal ( deck ) ;
				
				break ;
				
			case 'N' :
			case 'n' :
				
				break ;
			case '\n' :
				contatore--;
				break ;
						
			default :
				printf ("Y o y per cambiarla, N o n per mantenerla\n") ;
				contatore--;
				break;
			}
		
				
	
	}

2 Risposte

  • Re: Problema logica Switch richiesta spiegazione.

    Subito dopo la scanf inserisci questa linea

    while(getchar() != '\n') ;
  • Re: Problema logica Switch richiesta spiegazione.

    Grazie , ma se la inserisco , mi chiede due volte se voglio cambiare la prima parte :

    "La tua mano è :

    Nove di Cuori --- Dieci di Picche --- Jack di Fiori --- Donna di Fiori --- Asso di Picche ---

    Nessuna combinazione la carta più alta è : Asso di Picche

    Ora puoi cambiare le carte che non ti servono e sostituirle

    Y o y per cambiarla, N o n per mantenerla

    Vuoi Cambiare il Nove di Cuori?
    y
    Vuoi Cambiare il Nove di Cuori?
    y
    Vuoi Cambiare il Dieci di Picche?
    y
    Vuoi Cambiare il Jack di Fiori?
    y
    Vuoi Cambiare il Donna di Fiori?
    n
    Vuoi Cambiare il Asso di Picche?
    "

    non riesco proprio a capira come mai associ a \n il valore di ch ...

    ora ho risolto togliendo l'istruzione "contatore--" dal case '\n', ma mi rimane cmq qualche perplessità in merio...
Devi accedere o registrarti per scrivere nel forum
2 risposte