2017-09-29 2 views
-2

Besoin d'aide pour changer ce programme C de passer à if ou if else instructions pour un devoir. Je suis novice dans le domaine du codage, il suffit d'appuyer sur la bonne direction pour tout ce dont j'ai besoin. Le programme est conçu pour lire les lettres, par exemple «a/A», puis afficher le nombre total de fois que la lettre a été entrée. J'ai juste besoin d'un moyen de le convertir des cas de commutation à si et si d'autres déclarations.Réécriture d'un changement à

/* Counting letter grades */ 

#include <stdio.h> 

/* function main begins program execution */ 
int main(void) 
{ 
int grade; /* one grade */ 
int aCount = 0; /* number of As */ 
int bCount = 0; /* number of Bs */ 
int cCount = 0; /* number of Cs */ 
int dCount = 0; /* number of Ds */ 
int fCount = 0; /* number of Fs */ 

printf( "Enter the letter grades.\n" ); 
printf( "Enter the EOF character ('m')to end input.\n" ); 

/* loop until user types 'm' */ 
while ((grade=getchar()) !='m') { 

/* determine which grade was input */ 
switch (grade) { /* switch nested in while */ 

    case 'A':  /* grade was uppercase A */ 
    case 'a':  /* or lowercase a */ 
     ++aCount; /* increment aCount */ 
     break;  /* necessary to exit switch */ 

    case 'B':  /* grade was uppercase B */ 
    case 'b':  /* or lowercase b */ 
     ++bCount; /* increment bCount */ 
     break;  /* exit switch */ 

    case 'C':  /* grade was uppercase C */ 
    case 'c':  /* or lowercase c */ 
     ++cCount; /* increment cCount */ 
     break; /* exit switch */ 

    case 'D':  /* grade was uppercase D */ 
    case 'd':  /* or lowercase d */ 
     ++dCount; /* increment dCount */ 
     break; /* exit switch */ 

    case 'F':  /* grade was uppercase F */ 
    case 'f':  /* or lowercase f */ 
    ++fCount; /* increment fCount */ 
    break; /* exit switch */ 

    case '\n': /* ignore newlines, */ 
    case '\t': /* tabs, */ 
    case ' ' : /* and spaces in input */ 
     break; /* exit switch */ 

    default: /* catch all other characters */ 
    printf("Incorrect letter grade entered."); 
    printf(" Enter a new grade.\n"); 
     break; /* optional; will exit switch anyway */ 
    }   /* end switch */ 
}   /* end while */ 

/* output summary of results */ 
printf("\nTotals for each letter grade are:\n"); 
printf("A: %d\n", aCount); /* display number of A grades */ 
printf("B: %d\n", bCount); /* display number of B grades */ 
printf("C: %d\n", cCount); /* display number of C grades */ 
printf("D: %d\n", dCount); /* display number of D grades */ 
printf("F: %d\n", fCount); /* display number of F grades */ 
return 0; /* indicate program ended successfully */ 
} /* end function main */ 
+1

C'est une tâche si simple que je ne peux pas penser à un moyen de donner un indice qui est juste de donner la réponse. Qu'est-ce qui vous pose problème spécifiquement? –

+1

https://www.cprogramming.com/tutorial/c/lesson2.html – zerkms

+1

Indice: lorsque vous avez un tas de variables du même type avec le même nom qui ne diffèrent que par un ordinal ou un préfixe (comme vous avez ici), c'est un conseil vraiment fort que vous voulez utiliser un * tableau *. Ce n'est pas un problème pour cette tâche, mais c'est quelque chose que vous voudrez garder à l'esprit pour l'avenir. –

Répondre

0

Il est aussi simple que cela:

if(grade == 'A' || grade == 'a') 
    ++aCount; 
else if(grade == 'B' || grade == 'b') 
    ++bCount; 
else if(grade == 'C' || grade == 'c') 
    ++cCount;  
else if(grade == 'D' || grade == 'd') 
    ++dCount; 
else if(grade == 'F' || grade == 'f') 
    ++fCount; 
else if(grade == '\n' || grade == '\t' || grade == ' ') 
    ++fCount; 
else { 
    printf("Incorrect letter grade entered."); 
    printf(" Enter a new grade.\n"); 
} 

Ici si un corps d'un si ou bien, si l'instruction est exécutée, les autres corps ne seront pas exécutées.

PS: Cochez cette case utile Cprogramming Tutorial.

+1

On dirait que vous avez oublié les cas d'espaces. – Zong

+0

que signifie l'espace? @ Zong – pwndaman

+0

Zong signifie ce 'cas '':/* et espaces dans l'entrée * /' @pwndaman, les espaces pour la simplicité. – gsamaras