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

它的执行顺序是什么啊?为什么他一定就输出 “等级B”,而其他的不输出。是因为 score/=10限制了吗?不过是怎样的限制原理呢?


#include <stdio.h>
int main()
{
    int score = 87; //考试分数为87分
   
    switch(score/=10)
    {
        /*想想以下代码为什么用这种方式;
          这种方式的好处?*/
        case 10:
        case 9:
            printf("等级A");
            break;
        case 8:
            printf("等级B");
             break;               //这里是不是缺点什么?           
        case 7:
        case 6:
            printf("等级C");
                   break;         //这里是不是缺点什么? 
        default:
            printf("等级D");
            break;   
    }

正在回答

2 回答

score/10所得是整数,switch是多分支结构,意思当你的score/10达到case9,case10即90分和100分以上,输出等级A,同理,case6代表60分,达到的话就输出等级C,因为是选择,只有一个可以输出。87/10=8,达到case8,未达到case9,所以输出等级B。

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

scare/10由于输出的是整形变量,相当于给他取整了,正好取在了1~10之间,将100分巧妙地分成了十个等级,用switch在逐个的进行评级,87分相当于8,即等级B

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

举报

0/150
提交
取消

它的执行顺序是什么啊?为什么他一定就输出 “等级B”,而其他的不输出。是因为 score/=10限制了吗?不过是怎样的限制原理呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信