Errore di stampa del while

di il
3 risposte

Errore di stampa del while

Non capisco perchè mi stampa due volte il printf anche se è nel while.
Il programma deve fare questo: leggere input, se corrispondono a { o } le aggiunge al countp mentre il resto al countn. Ogni volta bisogna inserire un input ma me lo stampa in maniera sbagliata del tipo
Input a value:a
Input a value:Input a value:{
Input a value:Input a value:V

#include <stdio.h>
int main()
{
	int x,countp,countn;
	x='a';
	for(;x!=EOF;)
	{
		printf("Input a value:");
		x=getchar();
		if (x=='{' || x=='}')
		{			
			countp++;
		}
		else if (x>=33)
		{
			countn++;
		}
	}
	printf("Hai inserito una %d volta\\e { }\n", countp);
	printf("Non hai inserito una { }%d volte\\e\n", countn);

}

3 Risposte

  • Re: Errore di stampa del while

    Scusate prima di completare il messaggio ho fatto il cambio del while con il for, ma alla fine mi dà sempre quel risultato.
  • Re: Errore di stampa del while

    Per risolvere puoi aggiungere una pulizia del buffer alla fine del ciclo for con:
    fflush(stdin);
  • Re: Errore di stampa del while

    Al di là della questione relativa al buffer, vorrei farti una domanda: quanto valgono inizialmente le variabili countp e countn?
Devi accedere o registrarti per scrivere nel forum
3 risposte