2011-04-25 3 views
2

Lors de la compilation du segment de code suivant, je reçois l'erreur, « l'expression primaire attendue, avant « int ». Quelqu'un a une idée de ce que le problème est?Résoudre les problèmes de « si » fonction

void letterGrade (int score) 
{ 
    if (int score >= 90) 
    { 
      scoreLetter = 'A' 
    } 
    else if (int score >= 80) 
    { 
      scoreLetter = 'B' 
    } 
} 

Modifier :. code de nettoyage

Répondre

4

supprimer "int" dans l'instruction if, la variable est définie déjà

3

Supprimez le mot clé int avant partition si comparision

letterGrade void (int score) {

si (score> = 90) {scoreLetter = 'A';}

else if (score> = 80) {scoreLetter = 'B';}

}

+0

int main() {int score; chaîne scoreLetter; car A, B, C, D, F; cout << "Entrez la note:"; Cin >> score; void letterGrade (score int); void gradeFinal (score int); cout << "La lettre est" << scoreLetter << "."; } void letterGrade (score int) {if (score> = 90) {chaîne scoreLetter = 'A'} sinon if (score> = 80) {scoreLetter = 'B'} else if (score> = 70) Lors de la compilation, je Je reçois une erreur pour le Lince scoreLetter = 'A', etc. Qu'est-ce qui ne va pas? L'erreur indique 'scoreLetter' non défini. Ai-je besoin de définir scoreLetter dans la fonction et non dans la fonction principale? – Mike

2

La raison pour laquelle vous devez supprimer le int devant le score dans les instructions de test est que, avec l'int votre code définit de nouvelles variables locales nommées score dans cette étendue. Alors que vous avez l'intention d'utiliser la variable score pour l'ensemble de la portée de la fonction, pas seulement le score défini dans votre instruction if.

Questions connexes