C语言选择结构程序设计

描述

将学生具体的成绩转换成相应的等级分数。(谭浩强 C 语言 第三版 111 页第 5.6 题)

题目

给出一百分制成绩,要求输出成绩等级 ‘A’、‘B’、‘C’、‘D’、‘E’。90 分以上为 ‘A’,80 ~89 分为 ‘B’,70~79 分为 ‘C’ ,60~69 分为 ‘D’ ,60 分以下为 ‘E’ 。

题目解决思路

看到题目,我们可以想到的是 if else 的选择结构的条件控制语句,也可以将分数算成具体的一个数值,然后用 switch case 选择控制语句。

代码具体实现

if else 控制

#include <stdio.h> void main() { printf("嗨客网(www.haicoder.net)\n\n"); float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while (score > 100 || score <0) { printf("\n请输入正确的学生成绩:"); scanf("%f",&score); } if (score >= 90) { grade = 'A' ; } else if(score >=80 && score <90 ) { grade = 'B' ; } else if(score >= 70 && score<80) { grade = 'C'; } else if(score >= 60 && score<70) { grade = 'D'; } else { grade = 'E'; } printf("输入的成绩是 %5.1f,相应的等级是 %c。\n",score, grade); }

运行后,控制台输出如下:

06_输出成绩等级.png

我们输入了 70,此时走到了 else if 的逻辑,最终输出了 C。

switch case控制

#include <stdio.h> void main() { printf("嗨客网(www.haicoder.net)\n\n"); float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while(score > 100 || score <0) { printf("\n请输入正确的学生成绩:"); scanf("%f",&score); } switch((int)(score/10)) { case 10: case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; case 5: case 4: case 3: case 2: case 1: case 0: grade = 'E'; break; } printf("输入的成绩是 %5.1f,相应的等级是 %c。\n",score,grade); }

运行后,控制台输出如下:

07_输出成绩等级.png

我们输入了 30,此时走到了 case 3 的逻辑,最终输出了 E,我们可以看到,我们使用了 switch case 同样实现了逻辑。

总结

根据题目,我们会首先想到 if else , 也可以使用 switch case 这样的选择执行语句。