> A为90-100.> B为80-89.> C为70-79.> D为60-69.> F为0-59.
我知道如果你使用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; }
cout << "FFFFFFDCBAA"[score/10];
Demo.
(from comments) could you please explain what’s going on in the code?
字符串文字“FFFFFFDCBAA”被视为const char *指针,它允许应用indexer []运算符.分数以整数除以10,产生0到10之间的数字,包括0和10.字符串中的11个字符对应于“原始”分数的字母等级除以10.