Esercizio semplice in c

di il
4 risposte

Esercizio semplice in c

Salve a tutti, ho iniziato qualche giorno fà a programmare in c. Vorrei un aiutino nella compilazioni di questo programma.
#include <stdio.h>


  int main(){
    
  int n,i,mov,totp=0,totv=0;
   char sg;
   printf("quanti prelievi/versamenti vuoi effettuare?  :");
 	scanf("%i",&n);
 	 printf("\n");
 	 
      for(i=1;i<=n;i++){
	    printf("che cifra ti interessa?  :");
 	    scanf("%i",&mov);
 	     printf("\n");	   	     
 	   printf("vuoi prelevare p o vuoi versare v ?  :");
 	    scanf("%c",&sg);
 	     printf("\n"); 	    
 	   if (sg=='p')  totp=totp+mov;
 	    else if
		   (sg=='v') totv=totv+mov;
 	 }
 	 
 	  printf("i soldi prelevati sono: %i i soldi versati sono: %i",totp,totv);
		
	return 0;
}
il problema è che nel ciclo di for una volta inserito il valore sg(p prelevare o v per versare), il programma non ripete la prima domanda printf("che cifra ti interessa? :"); , ma chiede nuovamente il prelievo o il versamento .

4 Risposte

  • Re: Esercizio semplice in c

    Il formato all'interno della scanf è %d e non %i
  • Re: Esercizio semplice in c

    In realtà è corretto anche %i, per quanto forse sia meno comune di %d. Reference.
  • Re: Esercizio semplice in c

    E' la solita storia ... dopo la scanf("%c",&sg); inserisci una

    fflush(stdin);

    o un ciclo while per svuotare il buffer di tastiera.
  • Re: Esercizio semplice in c

    Oregon sei ammattito ? Ti sei fatto scappare uno fflush(stdin), perchè non allora un fpurge()
Devi accedere o registrarti per scrivere nel forum
4 risposte