1. 成绩转换:从分支语句到健壮性编程
成绩转换是编程入门阶段最经典的练习题之一,它考察的是基础分支语句的应用能力。但很多初学者往往只满足于实现基本功能,而忽略了代码的健壮性和可维护性。
1.1 基础实现与边界处理
原始代码使用了一系列if-else语句来处理不同分数段,这是最直观的实现方式。但我们可以从几个方面进行优化:
c复制#include <stdio.h>
int main() {
int score;
scanf("%d", &score);
if (score < 0 || score > 100) {
printf("Score is error!");
} else if (score >= 90) {
printf("A");
} else if (score >= 80) {
printf("B");
} else if (score >= 70) {
printf("C");
} else if (score >= 60) {
printf("D");
} else {
printf("E");
}
return 0;
}
注意:边界条件的处理应该放在最前面,这样可以避免无效数据的后续判断。同时,使用>=而不是范围判断(90<=a && a<=100)可以让代码更简洁。
1.2 代码优化与可读性提升
在实际开发中,我们还可以考虑以下优化点:
- 使用枚举或宏定义代替魔法数字
- 将逻辑封装成函数
- 添加输入验证
c复制#include <stdio.h>
#include <stdbool.h>
#define MIN_SCORE 0
#define MAX_SCORE 100
char convertScoreToGrade(int score) {
if (score >= 90) return 'A';
if (score >= 80) return 'B';
if (score >= 70) return 'C';
if (score >
