一直输出结果是d,为啥啊

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

link147

2019-09-06 15:58

#include <stdio.h>
int main()
{
    int score = 87; //考试分数为87分
    
    switch(score)
    {
      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;    
    }
    return 0;
}

写回答 关注

4回答

  • 心灵至善美
    2019-09-07 15:42:36

    score/=10;应该在switch语句前面。

  • 清欢iic
    2019-09-06 18:48:39

    你的score/=10 放错位置了

    你应该直接放在 int score=87;下面

  • 努力上学的小蜗牛
    2019-09-06 17:16:31

    想想你switch(score)中score指的是哪个score?是score=87的?还是score=score/10的?(根据你的代码score=87,不是case10,9,8,7,6.所以只能从default出来也就是等级d了,我尽量去说清楚了,你慢慢理解哈哈哈)。解决办法score=score/10写在switch的前面一行



  • 努力上学的小蜗牛
    2019-09-06 17:09:38

    +1,脑壳痛,甚至有点头皮发凉


C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题