其实,你的编译器提示信息已经很明显了:swtich表达式不是一个整形,switch表达式是一个比较特殊的语句,它要求是一个常量表达式,并且是基本类型,如int,char等。。因此,你程序里面的a是一个float型,因此需要进行一下强制转换,或者直接将a定义为int也是可以的。下面的代码,你可以参考一下:
#include <stdio.h>void main()
{
float a,d,c,i;
scanf("%f",&i);
if(i>1000衡整接兰000)
a=15;
else
a=i/10000;
switch((int)a)
{
case 0:
d=10.0;
break;
case 1:
d=10.0;
break;
default: //default语句最好还是加上吧,这是一个习惯
break;
}
c=i*(1.0-d/100);
printf("%f
",c);
}