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

不懂不懂真不懂

#include <stdio.h>

int main() 

{

    int score = 87; //考试分数为87分 

    

    switch(score=score/10)

    {

        /*想想以下代码为什么用这种方式;

          这种方式的好处?*/

        case 10:

        case 9:

            printf("等级A");

            break;

        case 8:

            printf("等级B");

            score/=10; 

            break;//这里是不是缺点什么?            

        case 7:

        case 6: 

            printf("等级C");

              break;              //这里是不是缺点什么?  

        default:

            printf("等级D");

            break;    

    }

    return 0;

}

为什么要在case 8的循环下加入一个“score /= 10;”呢?如果不加这一条输出结果依然是“等级B”,加与不加的区别是什么呢?

正在回答

1 回答

case 8 那里 正确答案是没有score/=10的

讲问题:先判断是哪段case 然后printf 显示出来是等级B 然后8.7再除以10 结果是0.87 但是printf已经判断过了 所以输出结果依然是等级B。

如果这段switch之后再写一段判断 0.87会判断为等级D

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

qq_慕桂英1196597

不是太懂,为什么输出还会再执行8.7/10
2019-05-12 回复 有任何疑惑可以回复我~
#2

盯住边际 回复 qq_慕桂英1196597

“等级B”下面那条命令score/=10是多余的。
2019-05-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

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

进入课程

不懂不懂真不懂

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