c语言switch语句的用法问题

2025-04-06 18:33:04
推荐回答(1个)
回答1:

case(c>=90&&c<=100):
case后面的必须是一个常量。
你这个可以先将成绩除以10,再用switch
#include"stdio.h"
voidmain()
{
charc;/*这里别用char,改成:intc,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;
虽然有点纠缠不清的感觉,但是希望对解决你的疑问有一定的帮助,呵呵。。。