要求:百分制成绩等级转换,90-100 评级A, 80-89评级B,60-79评级C,60以下评级D
以下是一个用C语言实现的百分制成绩等级转换程序。程序根据输入的成绩,输出对应的等级:
#include
// 函数声明
char getGrade(int score);
int main() {
int score;
printf("请输入成绩(0-100):");
scanf("%d", &score);
// 检查输入是否合法
if (score < 0 score> 100) {
printf("输入的成绩不合法!请输入0到100之间的整数。\n");
return 1; // 退出程序
}
// 获取等级并输出
char grade = getGrade(score);
printf("成绩等级为:%c\n", grade);
return 0;
}
// 根据成绩返回等级
char getGrade(int score) {
if (score >= 90 && score <= 100 return a else if score>= 80 && score < 90 return b else if score>= 60 && score < 80) {
return 'C';
} else {
return 'D';
}
}
代码说明
- 主函数:
提示用户输入成绩。
检查输入是否合法(0到100之间)。
调用getGrade函数获取等级并输出。
- getGrade函数:
根据输入的成绩返回对应的等级:
90-100:A
80-89:B
60-79:C
60以下:D
- 输入检查:
如果输入的成绩不在0到100之间,程序会提示输入错误并退出。
示例运行
输入:
请输入成绩(0-100):85
输出:
成绩等级为:B
输入:
请输入成绩(0-100):120
输出:
输入的成绩不合法!请输入0到100之间的整数。
进一步优化
不用if else,改用switch case实现更清晰
代码如下:
// 根据成绩返回等级
char getGrade(int score) {
int range = score / 10; // 将分数范围转换为离散的整数值
switch (range) {
case 10: // 100分
case 9: // 90-99分
return 'A';
case 8: // 80-89分
return 'B';
case 7: // 70-79分
case 6: // 60-69分
return 'C';
default: // 0-59分
return 'D';
}
}
总结
这个程序通过简单的条件判断实现了百分制成绩到等级的转换,并包含输入合法性检查,确保程序的健壮性。可以根据需要进一步扩展,例如支持浮点数输入或更多等级划分。