问答详情
源自:4-16 分支结构之switch语句

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

#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;
}

提问者:link147 2019-09-06 15:58

个回答

  • 心灵至善美
    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,脑壳痛,甚至有点头皮发凉