将学生具体的成绩转换成相应的等级分数。(谭浩强 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 选择控制语句。
#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);
}
运行后,控制台输出如下:
我们输入了 70,此时走到了 else if 的逻辑,最终输出了 C。
#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);
}
运行后,控制台输出如下:
我们输入了 30,此时走到了 case 3 的逻辑,最终输出了 E,我们可以看到,我们使用了 switch case 同样实现了逻辑。
根据题目,我们会首先想到 if else , 也可以使用 switch case 这样的选择执行语句。