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

两个问题,求解答

#include <stdio.h>

int main() 

{

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

    score/=10;   ---------1.这里是为什么????

    switch(score)

    {

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

          这种方式的好处?*/

        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;

}


提问者:慕粉032 2016-07-29 15:58

个回答

  • 兰天0
    2016-07-29 17:37:42
    已采纳

    1).87/=10是取该数的十位,因为下边的case是根据十位数进行判断。

    2).这样用使代码较为简洁,如果用区间判断的话,就比较麻烦。

  • 慕粉032
    2016-07-29 18:16:34

    非常谢谢

  • 丰子凯
    2016-07-29 18:11:30

    1. 因为这是等级判断,而且最小的分数差是10,所以除以10,如果是20分一个等级则除以20,这样可以减少代码长2.度。

    2. 因为switch代码对于区间之间的划分更简单,这题还没有明显的·体现,大数字的等级判定则会将switch代码的优点·体现出来。


  • 慕粉032
    2016-07-29 18:02:24

    嗯嗯,好的,谢谢,谢谢