将int转换为用户定义函数中的字符

时间:2013-08-02 22:44:30

标签: c++

我是C ++的初学者。我只想输出数字等级旁边的字母等级,但我不知道如何转换int W来输出字母。

char Grade(int W)
{
    char A,B,C,F;
    if (W == 100)
        return W = "A";
    else if (W == 99)
        return A;
}

3 个答案:

答案 0 :(得分:2)

您需要了解C ++程序中存在的不同typesint代表数字,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;
}

现在,变量Achar变量)的值为'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;
}