你那个不适合用switch,非要用的话,就这样吧
#include
#define NINE 9
#define EIGHT 8
#define SEVEN_HALF 7
main()
{
float x,a;
int CHOICE;
printf("请输入购物金额:\n");
scanf("%f",&x);
if(x>=200&&x<500)
{
CHOICE = NINE;
}
else if(x>=500&&x<1000)
{
CHOICE = EIGHT;
}
else if(x>=1000)
{
CHOICE = SEVEN_HALF;
}
switch(CHOICE)
{
case NINE:
printf("打折率为:%3.1f (9折)\n",a=NINE);
printf("应付金额:%.3f\n",x*a);
break;
case EIGHT:
printf("打折率为:%3.1f (8折)\n",a=EIGHT);
printf("应付金额:%.3f\n",x*a);
break;
case SEVEN_HALF:
printf("打折率为:%3.1f (7.5折)\n",a=(SEVEN_HALF+0.5));
printf("应付金额:%.3f\n",x*a);
break;
default:
printf("应付金额:%.3f\n",x);
break;
}
}
感觉问题表达的不是很清楚。
switch语句不适合你的这种情况,它是针对一系列固定值,而你这个是若干个范围。