在C语言中,使用if语句判断成绩等级的核心是根据分数的不同区间,设置对应的判断条件,让程序按照分数范围输出对应的等级标识,比如常见的A、B、C、D、E等级划分方式。

实现思路说明
首先要明确成绩等级和分数的对应关系,通常默认采用百分制,常见的划分规则如下:
- 分数大于等于90分,等级为A
- 分数大于等于80分且小于90分,等级为B
- 分数大于等于70分且小于80分,等级为C
- 分数大于等于60分且小于70分,等级为D
- 分数小于60分,等级为E
编写if判断时需要注意条件的顺序,一般从高分到低分依次判断,这样不需要重复写上限条件,逻辑更简洁。如果要先判断低分区间,就需要同时写上下限条件,避免逻辑错误。
基础实现代码示例
下面是完整的C语言代码,包含输入分数、判断等级、输出结果三个步骤:
#include <stdio.h>
int main() {
int score;
printf("请输入成绩分数(0-100):");
scanf("%d", &score);
// 先判断输入是否合法,避免无效分数
if (score < 0 || score > 100) {
printf("输入的成绩不合法,请输入0到100之间的整数n");
} else if (score >= 90) {
printf("成绩等级为:An");
} else if (score >= 80) {
printf("成绩等级为:Bn");
} else if (score >= 70) {
printf("成绩等级为:Cn");
} else if (score >= 60) {
printf("成绩等级为:Dn");
} else {
printf("成绩等级为:En");
}
return 0;
}
代码逻辑解析
代码首先引入标准输入输出头文件,然后在主函数中定义存储分数的整型变量score。通过printf输出提示信息,用scanf获取用户输入的分数。
判断部分首先校验分数是否在0到100的合法区间内,如果不合法直接输出提示。合法的情况下,按照从高到低的顺序判断:如果分数大于等于90,直接输出A;否则判断分数是否大于等于80,满足则输出B,以此类推。最后的else分支对应分数小于60的情况,输出E。
常见注意事项
- 条件判断的顺序不能颠倒,如果先判断小于60的情况,后面的条件也需要补充上限,否则会出现逻辑错误。比如先写
if (score < 60),那么判断B等级时就需要写成else if (score >= 80 && score < 90),否则会把高分也判定为B。 - 输入分数的类型要和变量类型匹配,如果用户输入的是带小数的分数,用
int类型存储会丢失小数部分,这种情况可以改用float或double类型,对应的输入格式也要改成%f。 - 可以在输出前统一处理等级变量,把等级先存到一个字符变量里,最后再输出,这样逻辑更清晰,也方便后续扩展其他功能。
扩展:使用字符变量存储等级
如果不想在每个分支里都写输出语句,可以先用字符变量存储等级,最后统一输出,代码示例如下:
#include <stdio.h>
int main() {
int score;
char grade;
printf("请输入成绩分数(0-100):");
scanf("%d", &score);
if (score < 0 || score > 100) {
printf("输入的成绩不合法n");
return 0;
} else if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else if (score >= 60) {
grade = 'D';
} else {
grade = 'E';
}
printf("成绩等级为:%cn", grade);
return 0;
}