我对编程比较陌生;我是大学c ++课程的介绍。
我如何将单个字符从函数返回到main?我还没有看到任何回答这个问题的帖子足以让我理解。
提前致谢!
对于那些感兴趣的人,这是我写的代码让我提出这个问题。
(注意:我的教授告诉我们在所有程序中包含cstdlib和iostream,并将using namespace std
放在main之前。我已经看过几篇帖子说不要使用它,但这就是我的教授如何写我们的程序。)
char evaluate(int score){
/*receives an int score out of 100 from main and determines what letter grade to return */
if (score >= 90 && score <= 100)
return "A";
else if (score >= 80 && score <= 89)
return "B";
else if (score >= 70 && score <= 79)
return "C";
else if (score >= 65 && score <= 65)
return "D";
else
return "F";
}
当我这样做时,我得到了错误:来自&#39; const char *&#39;的无效转换去#char;&#39; [-fpermissive]&#34;
任何想法为什么?
答案 0 :(得分:5)
"A"
是一个字符串文字。你的意思是'A'
。
答案 1 :(得分:4)
return "A";
将返回const char*
你应该使用: -
return 'A'
返回一个角色。
答案 2 :(得分:0)
或者,您可以通过执行以下操作来消除多个return语句:
char evaluate(int score)
{
char grade;
if (score >= 90 && score <= 100)
grade = 'A';
else if (score >= 80 && score <= 89)
grade = 'B';
else if (score >= 70 && score <= 79)
grade = 'C';
else if (score >= 65 && score <= 65)
grade = 'D';
else
grade = 'F';
return grade;
}
正如其他人所说,你应该使用单引号。 E.g. 'A'
而不是双引号。对字符串使用double。 char
的单引号。
答案 3 :(得分:0)
你可以做到
char evaluate(int score){
char returnValue = 'F';
/*receives an int score out of 100 from main and determines what letter grade to return */
if (score >= 90 && score <= 100)
returnValue = 'A';
else if (score >= 80 && score <= 89)
returnValue = 'B';
else if (score >= 70 && score <= 79)
returnValue = 'C';
else if (score >= 65 && score <= 65)
returnValue = 'D';
return returnValue;
}