switch多分支选择语句不支持关系、逻辑运算符吗?
#include <stdio.h>void main()
{
float p,w,d,f;
int s;
printf("Please input p,w,s:");
scanf("%f,%f,%d",&p,&w,&s);
switch (s)
{
case (s<250): d=0; break;
case (s >= 250 && s < 500): d=2; break;
case (s >= 500 && s < 1000): d=5; break;
case (s >= 1000 && s < 2000): d=8; break;
case (s >= 2000 && s < 3000): d=10; break;
default: d=15;
}
f=p*w*s*(1-d/100.0);
printf("freight=%15.4f\n",f);
}
这是根据谭浩强《C程序设计》(第三版)P110例5.7改写的程序,例题中的程序也是用switch写的。(如果需要,下次再补原程序吧!)
运行后报错,有以下2个提示:
Constant expression required in funtion main
Duplicate case in function main
难道说,[bo]case后面只能是常量一类的表达式,还是我在其它方面出现了纰漏[/bo]??
还望各位多多指教!!