我是C ++的初学者。我只想输出数字等级旁边的字母等级,但我不知道如何转换int W来输出字母。
char Grade(int W)
{
char A,B,C,F;
if (W == 100)
return W = "A";
else if (W == 99)
return A;
}
答案 0 :(得分:2)
您需要了解C ++程序中存在的不同types
。 int
代表数字,char
代表字符。
此外,变量的类型,名称和值之间存在差异。 声明
char A,B,C,F;
表示您正在创建4个char
变量。他们的名称是A,B,C和F.但是现在他们不包含任何值。因此,您可以将代码更改为:
char Grade(int W)
{
char A = 'A',B = 'B',C = 'C',F = 'F'; //now, A has the value 'A', B has the value 'B' etc.
if(W==100)
return A;
else if(W==99)
return A;
}
现在,变量A
(char
变量)的值为'A'
。另请注意,您返回的类型必须与您的函数的返回类型相同。
您的函数具有签名 char Grade(int W)
,这意味着参数是int
,而返回类型是{{ 1}}。
如果char
有100种不同的可能值,您现在该怎么办?你不想检查每种可能性。否则你将得到100个不同的W
...语句,这会破坏编程的目的!相反,你希望90以上的所有内容都是'A',80以上的其他内容都是'B'等等。所以你的代码改为:
else if
答案 1 :(得分:1)
您可以使用简单的if / else块将分数转换为字母等级。
char Grade(int score)
{
if(score >= 90) return 'A';
else if(score >= 80) return 'B';
else if(score >= 70) return 'C';
else if(score >= 60) return 'D';
return 'F';
}
答案 2 :(得分:0)
根据其他解释,将数字等级从100更改为50到“A”到“F”,其中低于50的所有内容都是自动“F”,但现在没有任何{{ 1}}语句。毕竟,这是一个简单的关系。
if..else
涉及到一些舍入:从90到100的所有内容都将返回“A”,80到89将返回“B”,依此类推。
(在考虑了你的程序级别之后)没有三元运算符的版本,这可能会使逻辑更清晰。还删除了每个可能的内置表示法快捷方式。
char Grade (int W)
{
return W < 50 ? 'F' : 'F'-(W-50)/10;
}