Вы захотите вернуть любое значение, которое ваша функция определит как scoreLetter
, а в main
есть строка типа scoreLetter = letterGrade(score);
.Вы не можете установить локальные переменные из другой функции, если только вызывающая сторона не передаст их вам по ссылке, чего здесь не происходит (и, в большинстве случаев, не следует так злоупотреблять).
В сторонуИсходя из этого, похоже, что вы смешиваете объявления и вызовы.void letterGrade (int score);
на самом деле не звонит letterGrade
;он просто говорит, что - это letterGrade
функция, которая принимает целое число, которое мы назовем «счетом».(score
- это просто имя, являющееся частью прототипа; оно не имеет связи с вашей переменной score
.) Таким образом, вы, вероятно, обнаружите, что если вам удастся заставить ваш код скомпилироваться, он что-то сделаетсовсем не так, как вы ожидаете.
Чтобы вызвать функцию, вы должны сделать что-то вроде letterGrade(score);
или, если вы последуете моему первому предложению, scoreLetter = letterGrade(score);
.
string letterGrade (int score);
// void gradeFinal (int score); // not used in this snippet
int main()
{
int score;
string scoreLetter;
char A, B, C, D, F;
cout<<"Enter the grade: ";
cin>> score;
scoreLetter = letterGrade(score);
cout<<"The letter grade is "<< scoreLetter<<".";
}
string letterGrade (int score)
{
string grade;
if (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else if (score >= 70)
...
return grade;
}