错误C2051:“case expression not constant”是一个编译器错误,表明在switch语句中使用的case标签表达式不是常量。在C和C++等编程语言中,switch语句的case标签必须是编译时常量,以便编译器能够生成有效的跳转表或条件分支。 导致该错误的常见原因 使用了变量作为case标签:如果case后面跟的是一个变量而不是常量表达式,就...
这句话的意思是switch语句中的case后面必须是常量。C语言中switch case语句的用法:switch (整型表达式){ case 1:printf("case 1\n");break;case 2:case 5:printf("case 2 or 5\n");break;...default:...break;} case 是开关语句的一个组成部分。case 下面必须是整型常数.冒号和break;之间...
这句话的意思是 case语句中的表达式不是常量 case 里需要的则必须是一个编译器常量,编译时就已经明确知道的值,例如给定一个UINT字面量。比如 's'才是常量(单引号) ,"s" 这样就是字符串了(双引号)。解决方法是把所有的case 表达式用单引号。
程序有两处错误,首先是没有取地址,scanf("%f%c%f",a,c,b);改为scanf("%f%c%f",&a,&c,&b);第二是把case "-":中的全部双引号改为单引号,即case '-'
case a b c中的a b c都是变量,这是错误的,case 后面一定要跟常量!!!default无所谓
4:冒号 连写下去。switch(month){ case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 1:printf("春季 31天");break;case 2:if (leap==1)printf("冬季 29天");else printf("冬季 28天");break;default:break;} 多分叉的选择用 switch,少分叉的 用...
B')?d=d+a:(c=='C')?e=e+a:0;}}printf("A公司的物流总价是%d元。\nB公司的物流总价是%d元。\nC公司的物流总价是%d元。\n",b,d,e);return 0;}个人以为?:实现的虽然是伪switch语句,但看起来几乎是原生的,并且比真正C/C++原生的switch语句的功能更强大,除了不能有复合语句……...
case中大双引号改为单引号就ok了,不对应该是直接去掉引号,因为month是int型的 include <stdio.h>void main(){ int year,month,leap; printf("请输入年 月"); scanf("%d%d",&year,&month); switch(month) { case 3:printf("春季 31天");break; default 2://去掉...
case expression not constant 说明case表达式不是常数,swtich的case值最好是数值 解决:最好你用 if(s[BUFLEN]==mStatus[0]){ }else if(s[BUFLEN]==mStatus[1]){}...else{ }
case后面只能跟int和字符型