案例五:给出一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
1.程序分析:
设成绩用score表示,并且score为整型数据。若score≥90,score可能是100,99,…90,把这些值都列出来太麻烦了,可以利用两个整数相除,结果自动取整的方法,即当90≤score≤100时,score/10只有10和9两种情况,这样用switch语句来解决便简便了。
程序源代码:
main( )
{
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’;
}
printf(“成绩是%5.1f,相应的等级是%c。\n”,socre,grade);
}
5.程序运行结果:
①
请输入学生成绩:90.5
成绩是:90.5,相应的等级是A。
② 请输入学生成绩:59
成绩是:59.0,相应的等级是E。
6.案例扩展:由键盘输入学生成绩等级,输出成绩范围。等级评定同案例相同。