/*
【需求】: 输入一个学生百分制成绩,
* 要求输出成绩等级'A'、'B'、'C'、'D'、'E'。
* 90分以上为'A';80~89分为'B';70~79分为'C';
* 60~69分为'D'; 60分以下为'E'。 */
//Coder: LX
//Time: 2009-10-30 21:21
#include "stdio.h"
void main()
{
float grade;//输入分数
char category;//输出结果,表示成绩的等级
printf("Please input your grade: ");
scanf("%f", &grade);
if(grade>=90.0 && grade<=100.0)
{
category = 'A';
}
else if(grade>=80.0 && grade<90.0)
{
category = 'B';
}
else if(grade>=70.0 && grade<80.0)
{
category = 'C';
}
else if(grade>=60.0 && grade<70.0)
{
category = 'D';
}
else if(grade>=0.0 && grade<60.0)
{
category = 'E';
}
/* 注意,输入59.99999时,输出的是什么?
是D 还是 E ?
实际上老师不会打这样的分,故我的代码已经符合“用户需求”了
但是从技术细节上来说,这里面有什么窍门?
怎么实现更细节的需求(精度)?PS:这个我也没弄明白,欢迎跟帖
*/
else
{
printf("您输入的分数有误,请重新输入!/n");
}
/*注意,case后面的判断条件只能对应某“单值”,不能是“范围”,
故此,在前面将输入的成绩(某范围)转化为等级(单值),需结合if…else
*/
switch(category)
{
case 'A':
printf("您的成绩是A/n");
break;
case 'B':
printf("您的成绩是B/n");
break;
case 'C':
printf("您的成绩是C/n");
break;
case 'D':
printf("您的成绩是D/n");
break;
case 'E':
printf("您的成绩是E/n");
break;
default:
return;
}
return;
//我用了哪两种注释方式?
//哪里地方需要写注释呢?
//我的注释也写得有些乱哈,很多地方也只是自己能看明白