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

为什么不对?

#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 回答

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:。
希望不光对你的问题有帮助,也对你的本节课有帮助。


2 回复 有任何疑惑可以回复我~

//在使用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;

}


0 回复 有任何疑惑可以回复我~
switch语句里边的case是指情况,是用来判断是否进入“:”后边的执行语句,在你的程序中1就是判断条件,所以没有符合的情况,你可以把“score>=80&&score<=90;”这样的语句放在1,2,3,4。。。的位置,就可以了。
0 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么不对?

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