题解
成绩等级与分数
1 条题解
-
0
P4260 成绩等级与分数(入门)
解题思路
这道题就像自动售货机:你按哪个按钮,它就吐哪个商品。输入一个等级字符,输出对应的分数范围。
用 if...else if...else 一档一档判断:
- 'A' → 90~100
- 'B' → 80~90
- 'C' → 60~80
- 'D' → fail
- 其他任何字符 → error
注意 else 的用法:判断完 A、B、C、D 都"不成立"之后,剩下的所有情况统一走最后的 else,这样"其他等级"就自动全部归到 error,不需要再写一堆条件。
边界情况:
- 如果输入小写字母 'a',和 'A' 不相等(字符比较区分大小写),最后会落到 else 输出 error,符合题目"输入其他等级则输出 error"的要求。
- 输入保证是一个字符,char c; cin >> c; 就能读进来,不用考虑读入多个字符。
比如输入 A,第一条判断 c=='A' 成立,输出 "90~100",后面的分支都不再执行。
参考代码
// 用途:根据输入的等级字符,输出对应的分数区间或错误提示 #include <iostream> using namespace std; int main() { char c; cin >> c; if (c == 'A') cout << "90~100" << endl; // A对应90~100 else if (c == 'B') cout << "80~90" << endl; else if (c == 'C') cout << "60~80" << endl; else if (c == 'D') cout << "fail" << endl; // D表示不及格 else cout << "error" << endl; // 其他字符一律报错 return 0; }复杂度分析
最多依次判断 5 次(4 个 if 加 1 个 else),之后立即输出,和输入的字符是什么无关,时间复杂度 O(1),额外空间 O(1)。这类"多选一"的分支题,分支再多也只执行其中一条,永远是最快的。
- 1