为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要加上 score /=10

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

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

正在回答

3 回答

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分之间也是这样处理的。 
       

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~
#1

i是祎不是伟 提问者

那为什么 case 7:后面不用写printf("");和break;
2016-04-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么要加上 score /=10

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号