为什么要加上 score /=10

来源:4-16 分支结构之switch语句

i是祎不是伟

2016-04-12 21:10

为什么要加上:score /=10?

为什么case常量表达式从10开始?

写回答 关注

3回答

  • 小雾3378873
    2016-06-03 18:05:03

    1、为什么要加上:score /=10?

            除以10以后0分至100分就会变成了0到10个数字,(因为:score为整型int,所以被除以后即使不为整数, 在再次赋值后也会自动把小数部分去掉),这样,90<=X<=100分就变成了9和10,80<=x<90的范围就变成了8, 60<=x<80的范围就变以了6和7 。这道题中score=score/10=8

    2、为什么case常量表达式从10开始?

        应该和题意有关系吧,题中90-100定义为等级A、80-90定义为等级B、60-80定义为等级C、60分以下的为等级D,所以罗列case时自然而然是从高分往低分分配,最后60分以下的归到default里,这样思路清晰。但如果非要从低向高罗列也可以。

    case 0:

    case1:

    case2:

    case3:

    case4:

    case5:

                 printf("等级D");
                break;

    case6:

    case7:

            printf("等级C"); 
            break;

    …………………………不觉得这样很麻烦么?

    3、那为什么 case 7:后面不用写printf("");和break;

        因为60多分和70多分都是属于等级C的,所以这里与60分多时一并处理,swich语句中在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。当分数在60多分与70多分之间时都会执行case6下面的语句。同理分数在100分与90分之间也是这样处理的。 
           

  • Nicole5863
    2016-05-19 09:28:34

    因为6和7一个等级,所以可以不写

  • _西决
    2016-04-12 21:37:49

    因为score是整型数据,score/=10之后简化了个位数据的判断,不加score/=10的话swith语句需要很多的case才能实现代码要求。

    i是祎不是伟

    那为什么 case 7:后面不用写printf("");和break;

    2016-04-12 22:20:42

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926893 学习 · 21464 问题

查看课程

相似问题