运行此c程序时出错.我得到一个错误,如"案例标签不会减少到一个整数常量".帮助我找到错误.我是c的新手,几个星期前就开始了.谢谢你
#include<stdio.h>
main()
{ int a,b,c;
scanf("%d",&c);
if (c<5) {
c==a ;
}
else { c==b;
}
switch (c)
{
case a:
printf ("statement1");
break;
case b :
printf(" statement2");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在C中,您似乎c#因某种原因而调用,case标签必须是整数常量.
6.8.4.2-3
每个case标签的表达式应为整数常量表达式,并且同一switch语句中的两个case常量表达式在转换后不应具有相同的值.
不确定这是否是您想要的,但您可以尝试:
switch (c) {
case 'a':
break;
case 'b':
break;
}
Run Code Online (Sandbox Code Playgroud)
否则,也许你想要
if (c == a)
/* ... */
else if (c == b)
/* ... */
else
/* ... */
Run Code Online (Sandbox Code Playgroud)
作为旁注,你可能想要c=a而不是c==a.