问答详情
源自:4-16 分支结构之switch语句

小明期末考试分数为87分,在代码编辑器中完善代码使其输出结果为: 等级B 。菜鸟我看不懂!


hello.c
#include <stdio.h>
int main()
{
    int score = 87; //考试分数为87分

    switch(score)
    {
        /*想想以下代码为什么用这种方式;
          这种方式的好处?*/
        case 10:
        case 9:
            printf("等级A");
            break;
        case 8:
            printf("等级B");
                            //这里是不是缺点什么?           
        case 7:
        case 6:
            printf("等级C");
                            //这里是不是缺点什么? 
        default:
            printf("等级D");
            break;   
    }
    return 0;
}

提问者:慕粉1009279216 2017-03-21 07:03

个回答

  • 慕UI9091795
    2017-03-21 12:21:39

    hello.c
    #include <stdio.h>
    int main() 
    {
        int score = 87; //考试分数为87分 


      重点在这里,case 里是比对第十位的大小进行了判断,我们需要简化下输入
     score=score/10 (这里得到的是分数的第十位数值,然后就能判断了,但十位是9和10(既是100分)的时候都是A级,因为case 10和9只有一个braek,一个级别需要一个break。) 我说清楚了吗?


        switch(score)
        {
            /*想想以下代码为什么用这种方式;
              这种方式的好处?*/
            case 10:
            case 9:
                printf("等级A");
                break;
            case 8:
                printf("等级B");
                                //这里是不是缺点什么?            
            case 7:
            case 6: 
                printf("等级C");
                                //这里是不是缺点什么?  
            default:
                printf("等级D");
                break;    
        }
        return 0;
    }