这句话的意思是
case语句中的表达式不是常量
case
里需要的则必须是一个编译器常量,编译时就已经明确知道的值,例如给定一个UINT字面量。
比如
's'才是常量(单引号)
,"s"
这样就是字符串了(双引号)。解决方法是把所有的case
表达式用单引号。
#include stdio.h
main ()
{
char c;
int a,b,d,e,i;
for(i=1;i=6;i++)
{
scanf("%c %d",c,a);//加上取地址附
switch (c)
{
case 'A':b=b+a;break;//直接这样就可以来了
case 'B':d=d+a;break;
case 'C':e=e+a;break;
default:printf("没有找到")//break也不需要
}
}
printf("A公司的物流总价是%d元。\nB公司的物流总价是%d元。\nC公司的物流总价是%d元。\n",b,d,e);
return 0;
}
这趟车是复兴号车次:C2051
发站:北京南(13:22)
到站:天津(13:52)
历时:00:30
二等:54.5
一等:88
硬卧:—/—/—
软卧:—/—
这是错误代码,意思:将“”修改为‘’。
很明显根据提示可以知道,错误,errorC2051:caseexpressionnotconstant。
,case表达式应为常量表达式,例如“case“a””中““a””为字符串,这是非法的。