从终端读入一个百分制整数。依据如下方式判断其成绩等级。90~100分段,判为优秀;70~89分段,判为良好;60~69,判为及格;60分以下,判为不及格;其它分数段,判为输入错误。要求用 switch/case 语句实现。
时间: 2024-09-13 11:02:36 浏览: 41
在使用switch/case语句实现成绩等级判断时,可以利用switch语句中的case范围匹配功能。但需要注意,标准的switch/case语法并不直接支持范围判断,因此需要一种变通的方法来实现。一种常见的做法是先将分数转换为一个分类值,然后基于这个分类值来进行case判断。
以下是一个用switch/case语句实现的示例代码,假设使用C语言:
```c
#include <stdio.h>
int main() {
int score;
char grade;
// 从终端读入一个百分制整数
printf("请输入一个百分制整数:");
scanf("%d", &score);
// 判断输入是否有效
if (score < 0 || score > 100) {
printf("输入错误\n");
return 0;
}
// 将分数转换为分类值,这里使用了一个技巧:(score / 10) % 11
// 使得:
// 0 <= score < 90时,转换结果为0
// 90 <= score <= 100时,转换结果为1
switch ((score / 10) % 11) {
case 1: // 90~100分
grade = '优';
break;
case 0: // 0~89分
if (score >= 70) {
grade = '良';
} else if (score >= 60) {
grade = '及';
} else {
grade = '不';
}
break;
default:
grade = '?';
break;
}
// 输出成绩等级
switch (grade) {
case '优':
printf("成绩等级:优秀\n");
break;
case '良':
printf("成绩等级:良好\n");
break;
case '及':
printf("成绩等级:及格\n");
break;
case '不':
printf("成绩等级:不及格\n");
break;
default:
printf("输入错误\n");
break;
}
return 0;
}
```
在这段代码中,首先通过输入获取分数,然后判断分数的有效性。接着,通过 `(score / 10) % 11` 的计算将原始分数转换为一个分类值,然后用switch语句进行分类判断。最后,再通过switch语句输出对应的成绩等级。
阅读全文