int main()
{
int score;
string scoreLetter;
char A, B, C, D, F;
cout<<"Enter the grade: ";
cin>> score;
void letterGrade (int score);
void gradeFinal (int score);
cout<<"The letter grade is "<< scoreLetter<<".";
}
void letterGrade (int score)
{
if (score >= 90) {
string scoreLetter = 'A'
} else if (score >= 80) {
scoreLetter = 'B'
} else if (score >= 70)
- 编译时,我得到了line scoreLetter ='A'等错误。这有什么问题?错误状态'scoreLetter'未定义。我是否需要在函数中定义scoreLetter而不是main?
答案 0 :(得分:1)
C / C ++中的单引号用于定义字符,而不是字符串。请改用双引号。 string scoreLetter = "A"
。如果std::string
是您尝试使用的内容,则还需要包含标题:#include <string>
和using std::string
。
答案 1 :(得分:0)
你的代码被截断了,但我认为你可以从正常情况下调用这些功能。
您还应该尝试更具体地说明您所使用的语言,即我相信C语言。
对函数的正确调用将是:
letterGrade(评分);
是的,你需要在全局范围内定义字符串变量,所以只需将它移出main和它上面。
string scoreLetter;
int main()
{
int score;
char A, B, C, D, F;
cout<<"Enter the grade: ";
cin>> score;
letterGrade (score);
gradeFinal (score);
cout<<"The letter grade is "<< scoreLetter<<".";
}
void letterGrade (int score)
{
if (score >= 90) {
scoreLetter = "A"
} else if (score >= 80) {
scoreLetter = "B"
} else if (score >= 70)
答案 2 :(得分:0)
您需要返回您的函数确定的scoreLetter
应该是什么值,并且main
中有scoreLetter = letterGrade(score);
之类的行。你不能从另一个函数设置局部变量,除非调用者通过引用将它们传递给你,这在这里没有发生(并且在大多数情况下,不应该像这样被滥用)。
除此之外,看起来你正在混淆声明和调用。 void letterGrade (int score);
实际上并未调用letterGrade
;它只是说是一个letterGrade
函数,它接受一个int,我们称之为“得分”。 (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;
}