分别使用if和switch语句,实现输入一个0-100的成绩,输出其成绩等级(优良中及格不及格),注意使用两种语句实现,写成两个代码——用C语言
时间: 2024-10-10 15:08:37 浏览: 13
在C语言中,你可以使用`if`语句和`switch`语句分别实现给定条件下的成绩等级判断。以下是两种方法的示例:
**使用if语句实现:**
```c
#include <stdio.h>
int main() {
int score;
printf("请输入一个0-100的成绩:");
scanf("%d", &score);
if (score >= 90) {
printf("成绩等级:优秀\n");
} else if (score >= 60) {
printf("成绩等级:良好\n");
} else if (score >= 30) {
printf("成绩等级:及格\n");
} else if (score >= 0) {
printf("成绩等级:及格边缘\n"); // 中等分数范围未明确指定,这里假设30分以上为及格
} else {
printf("成绩等级:不及格\n");
}
return 0;
}
```
**使用switch语句实现:**
```c
#include <stdio.h>
#include <limits.h> // 引入INT_MAX用于防止溢出
int main() {
int score;
printf("请输入一个0-100的成绩:");
scanf("%d", &score);
switch(score / 10) { // 按照每10分为一档简化处理
case 10: // 优秀
printf("成绩等级:优秀\n");
break;
case 5: // 良好
printf("成绩等级:良好\n");
break;
case 0: // 及格
printf("成绩等级:及格\n");
break;
default:
if (score > 0) {
printf("成绩等级:及格边缘\n");
} else {
printf("成绩等级:不及格\n");
}
}
return 0;
}
```
**相关问题--:**
1. `if`和`switch`在处理复杂逻辑分支时,哪种效率更高?
2. 上述两种方法中,哪一种更易于理解和维护?
3. 如果需要添加更多等级划分,应该如何修改代码?