我想根据考试成绩分配成绩.
我知道如果您使用switch或if..else声明,将会有不超过5个声明,但任何人都有更好的解决方案吗?
我使用ASCII值来解决它,但就代码行而言,它只是相同的.
这是代码:
Score/=10;
Score=min(9,Score);
Score=9-Score;
Score+=65;
if(Score<=68)
{
cout<<static_cast<char>(Score)<<endl;
}
else
{
cout<<"F"<<endl;
}
Run Code Online (Sandbox Code Playgroud)
das*_*ght 18
在输入选择数量有限的情况下,标准方法是使用查找表:
cout << "FFFFFFDCBAA"[Score/10];
Run Code Online (Sandbox Code Playgroud)
(来自评论)你能解释一下代码中发生了什么吗?
字符串文字"FFFFFFDCBAA"被视为const char*指针,允许应用索引器[]操作符.Score整数除以10,产生0到10之间的数字.字符串中的11个字符对应于"原始"分数的字母等级除以10.
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |