Win*_*Key -1 c switch-statement
switch(at){
case (at>0 && at<5) :
printf("Average Time Taken (Hrs)\n%d.0",at);
printf("Your Salary is Rs.%d",pj*1500 + 5000);
break;
Run Code Online (Sandbox Code Playgroud)
其余的代码是相似的.我收到了这个错误case (at>0 && at<5) :
Sou*_*osh 10
我担心这是不可能的.引用C11,第6.8.4.2章
每个
case标签的表达式应为整数常量表达式,并且同一switch语句中的两个case常量表达式在转换后不应具有相同的值.[....]
所以case标签表达式不能是运行时生成的值依赖.
您可以使用直通式语法来实现您想要的功能,例如
switch(at){
case 1:
case 2:
case 3:
case 4:
printf("Average Time Taken (Hrs)\n%d.0",at);
printf("Your Salary is Rs.%d",pj*1500 + 5000);
break;
//some other case
Run Code Online (Sandbox Code Playgroud)
否则,如果你确定使用gcc的扩展,可以使用的情况下,范围语法,像
switch(at){
case 1 ... 4:
printf("Average Time Taken (Hrs)\n%d.0",at);
printf("Your Salary is Rs.%d",pj*1500 + 5000);
break;
Run Code Online (Sandbox Code Playgroud)