ciao a tutti,
studiando C mi sono imbattuto in un esercizio che consiste nel creare un programma dove devo utilizzare gli switch per contare il numero di ognuna delle lettere ottenute dagli studenti come votazione al termine di un esame (mamma mia, speriamo che si capisca come l'ho scritto )...
io ho scritto questo, quando lo eseguo nel terminale va tutto bene ma quando digito EOF per terminare non esegue...
codice:
#include <stdio.h>
int main (void)
{
int grade;
int aCount = 0;
int bCount = 0;
int cCount = 0;
int dCount = 0;
int fCount = 0;
printf ("inserisci il voto dell'esame espresso in lettere \n");
printf ("inserisci EOF per terminare gli inserimenti \n");
while ( ( grade = getchar() ) != EOF ) {
switch (grade) {
case 'A':
case 'a':
++aCount;
break;
case 'B':
case 'b':
++bCount;
break;
case 'C':
case 'c':
++cCount;
break;
case 'D':
case 'd':
++dCount;
break;
case 'F':
case 'f':
++fCount;
break;
case '\n':
case '\t':
case ' ':
break;
default:
printf ("carattere errato. ");
printf ("inserisci il voto dell'esame espresso in lettere \n");
break;
}
}
printf ("\nTotale voti: \n");
printf ("A: %d \n", aCount);
printf ("B: %d \n", bCount);
printf ("C: %d \n", cCount);
printf ("D: %d \n", dCount);
printf ("F: %d \n", fCount);
return 0;
}