实验四第4题:关于switch...case分支语句的使用

来源:互联网 发布:app直播系统源码转让 编辑:程序博客网 时间:2024/06/06 10:32

/*
【需求】: 输入一个学生百分制成绩,
*                       要求输出成绩等级'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;

 

}

//我用了哪两种注释方式?
//哪里地方需要写注释呢?

//我的注释也写得有些乱哈,很多地方也只是自己能看明白