c语言switch语句判断成绩
在C语言中,我们可以使用switch
语句根据学生的成绩来判断并输出相应的等级。假设我们有一个百分制的成绩存储在一个整型变量score
中,以下是使用switch
语句进行成绩等级判断的示例代码:
#include int main() { int score; // 输入学生成绩 printf("请输入学生的成绩(0-100):"); scanf("%d", &score); // 使用switch语句判断成绩等级 switch (score / 10) { // 由于是按10分一段划分等级,这里先对成绩除以10 case 10: case 9: // 注意:这里实际上应该写 case 9: break; case 10: 合并在一行,但考虑到实际情况应细化判断 printf("成绩等级为:A\n"); break; case 8: printf("成绩等级为:B\n"); break; case 7: printf("成绩等级为:C\n"); break; case 6: if (score >= 60) { printf("成绩等级为:D\n"); } else { // 处理刚好60分以下的情况 printf("成绩等级为:E\n"); } break; default: printf("输入的成绩有误!\n"); break; } return 0; }
对于上面的代码需要注意,为了简化演示,这里假定成绩按照10分一档来区分等级。但实际应用中,为了避免误判,通常会按照实际分数范围来设定每个等级的具体边界,例如:
#include int main() { int score; printf("请输入学生的成绩(0-100):"); scanf("%d", &score); switch (score) { case 90 ... 100: // C语言标准中没有范围匹配,这里是伪代码表示,实际需分开写多个case printf("成绩等级为:A\n"); break; case 80 ... 89: printf("成绩等级为:B\n"); break; case 70 ... 79: printf("成绩等级为:C\n"); break; case 60 ... 69: printf("成绩等级为:D\n"); break; default: // 包括60分以下的所有成绩 printf("成绩等级为:E\n"); break; } return 0; } // 或者使用if...else if...else结构更为直观 if (score >= 90) { printf("成绩等级为:A\n"); } else if (score >= 80) { printf("成绩等级为:B\n"); } // 其他等级判断类似...
在C语言中并没有连续范围的case
语句,因此在实际编写时,针对每一段成绩区间,需要分别写出不同的case
。或者更适合这种场景的是使用一系列的if...else if...else
语句来进行判断。