为什么不对?

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

后hou3718826

2016-07-28 21:25

#include <stdio.h>

int main() 

{

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

    

    switch(score)

    {

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

          这种方式的好处?*/

        

        case 1:

            score>=90&&score<=100;

            printf("等级A");

            break;

        case 2:

            score>=80&&score<=90;

            printf("等级B");

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

        

        case 3:

            score>=60&&score<80;

            printf("等级C");

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

        default:

            score<60;

            printf("等级D");

            break;    

    }

    return 0;

}


写回答 关注

3回答

  • 我改名字了
    2016-08-14 22:05:48

    score = score/10;选项展开只有10个。0~59可以简化为一个选项。只需要六个结果选择就可以了。而你选择,没有score/=10;。当然也可以,不过你要有42个选项。

    #include <stdio.h>

    int main() 

    {

        int score = 87;  

        score/=10;

        switch(score)

        {

            case  0:printf("等级D");break;               

            case  1:printf("等级D");break;

            case  2:printf("等级D");break;

            case  3:printf("等级D");break;              

            case  4:printf("等级D");break;

            case  5:printf("等级D");break;               

            case  6:printf("等级C");break;               

            case  7:printf("等级C");break;               

            case  8:printf("等级B");break;               

            case  9:printf("等级A");break;               

            case  10:printf("等级A");break;               

            default:printf("等级D");break;    

        }

        return 0;

    }

    #include <stdio.h>

    int main() 

    {

        int score = 87;  

        score/=10;

        switch(score)

        {

            case 10:printf("等级A");break;

            case  9:printf("等级A");break;

            case  8:printf("等级B");break;              

            case  7:printf("等级C");break;

            case  6:printf("等级C");break;               

            default:printf("等级D");break;    

        }

        return 0;

    }

    90<=分数<=100 ,等级为A。已知最高分为100.

    int score = 87;  整形数变量score被赋值应在0~100之间。

    score/=10;    score为整形数除以十舍弃小数点及小数点以后数字。score = 8 被赋值8。

    switch(score)  理解为  switch(score  8)

    case  8:printf("等级B");  对应输出 等级B ,并 break;  结束循环。

    如果不在几个选项,即(  case 10:   case  9:……8:……7:……6:)中。那么输出default:printf("等级D");break; 

    在switch语句中, switch ,break  ,default。应同时出现。所以switch不是用判断结束的,是用break分号结束的。另外 case 10:case 9:case 8:case 7: case 6:default:
    位置可以打乱。
    虽然case 10:可以后面为空。但位置不可改变。即:为100分时,case 10:无输出,无结束循环语句break; ,那么执行他下方的case 9:。如case 9:与case 6:位置对调,那么执行case 6:。
    希望不光对你的问题有帮助,也对你的本节课有帮助。


  • qq_细节造就完美男人_0
    2016-08-03 17:42:32

    //在使用score前,先将其配置好

    #include <stdio.h>

    int main() 

    {

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

        score = score/10;//这里为提取score的十位数

        switch(score)

        {

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

              这种方式的好处?*/

            

            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;

    }


  • 究其一生
    2016-07-28 23:02:32
    switch语句里边的case是指情况,是用来判断是否进入“:”后边的执行语句,在你的程序中1就是判断条件,所以没有符合的情况,你可以把“score>=80&&score<=90;”这样的语句放在1,2,3,4。。。的位置,就可以了。

C语言入门

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

926288 学习 · 20799 问题

查看课程

相似问题

为什么不对

回答 2

为什么不对

回答 2

为什么不对

回答 1

为什么不对

回答 5

为什么不对

回答 1