C语言:switch语句用法
发布网友
发布时间:2022-04-21 05:28
我来回答
共5个回答
热心网友
时间:2022-06-18 05:41
case (c>=90 && c<=100):
case后面的必须是一个常量。
你这个可以先将成绩除以10,再用switch
#include "stdio.h"
void main()
{
char c; /*这里别用char,改成:int c,d;*/
scanf("%c",&c); /*这一句也改成scanf("%d",&c);最好前面再加一句,printf("请输入成绩:"); 在这句后面加一句d=c/10;*/
switch(c) /*然后switch里面用d来判断,switch(d)*/
{
case (c>=90 && c<=100):printf("成绩的等级为:A.\n");
break; /*改成: case (10):
case (9):printf("成绩的等级为:A.\n");break;
case (c>=80 && c<=89):printf("成绩的等级为:B.\n");
break; /*改成:case (8):printf("成绩的等级为:B.\n"); break;
}
}
因为90到100之间的数经过除以10再取整以后就变成了9;100/10等于10,又因为case调用同一个语句的时候允许就在最后一个语句写上那个语句,而将前面的那几个省略掉,所以case (10):后面的就省掉了,当然写上也不会错。
你的补充的那个,你可以把它分开表示,就像我给你弄的那个case (c>=90 && c<=100):printf("成绩的等级为:A.\n");
break; /*改成: case (10):
case (9):printf("成绩的等级为:A.\n");break;
虽然有点纠缠不清的感觉,但是希望对解决你的疑问有一定的帮助,呵呵。。。
热心网友
时间:2022-06-18 05:41
你的代码错了,switch中case后跟的条件必须是一个确定的数,不是范围,而且c的类型也声明错了,可以这样改:
#include "stdio.h"
void main()
{
int c,a;
printf("请输入成绩:\n");
scanf("%c",&c);
if(c>=90) a=1;
else if(c>=80) a=2;
switch(a)
{
case 1:printf("成绩的等级为:A.\n");
break;
case 2:printf("成绩的等级为:B.\n");
break;
}
}
热心网友
时间:2022-06-18 05:42
case
(c>=90
&&
c<=100):
case后面的必须是一个常量。
你这个可以先将成绩除以10,再用switch
#include
"stdio.h"
void
main()
{
char
c;
/*这里别用char,改成:int
c,d;*/
scanf("%c",&c);
/*这一句也改成scanf("%d",&c);最好前面再加一句,printf("请输入成绩:");
在这句后面加一句d=c/10;*/
switch(c)
/*然后switch里面用d来判断,switch(d)*/
{
case
(c>=90
&&
c<=100):printf("成绩的等级为:A.\n");
break;
/*改成:
case
(10):
case
(9):printf("成绩的等级为:A.\n");break;
case
(c>=80
&&
c<=89):printf("成绩的等级为:B.\n");
break;
/*改成:case
(8):printf("成绩的等级为:B.\n");
break;
}
}
因为90到100之间的数经过除以10再取整以后就变成了9;100/10等于10,又因为case调用同一个语句的时候允许就在最后一个语句写上那个语句,而将前面的那几个省略掉,所以case
(10):后面的就省掉了,当然写上也不会错。
你的补充的那个,你可以把它分开表示,就像我给你弄的那个case
(c>=90
&&
c<=100):printf("成绩的等级为:A.\n");
break;
/*改成:
case
(10):
case
(9):printf("成绩的等级为:A.\n");break;
虽然有点纠缠不清的感觉,但是希望对解决你的疑问有一定的帮助,呵呵。。。
热心网友
时间:2022-06-18 05:42
你输入的是分数,怎么能用Char呢?char是定义字符型变量的,应该用int.并且case后只能整型的或字符型的,如case 1:和case'a': 不能为条件语句.楼上的有写的对的,自己琢磨琢磨~
热心网友
时间:2022-06-18 05:43
这个(c>=90 && c<=100)这样表示:
case 90;
case 91;
case 92;
case 93;
case 94;
case 95;
case 96;
case 97;
case 98;
case 99;
case 100:printf("成绩为A");break;
这个跟(c>=90 && c<=100)效果是一样的