读书人

帮小弟我看看代码错在那里超级简单

发布时间: 2012-03-12 12:45:33 作者: rapoo

帮我看看代码错在那里,超级简单
本来我是想这样写一个代码1的,但是一直出错误结果就是写成了后面的代码2

请问一下我用switch结构写为什么出错? 错在那? 怎么让代码1 实现代码2的功能(也就是用switch结构写代码2的功能), 详细点, 我新人~~~


代码1

#include <stdio.h>
void main()
{
int x;
float a;
printf( "请输入购买了几件商品 ");
scanf( "%d ",&x);

printf( "请输入购买商品的价格: ");
scanf( "%f ",&a);
switch(x)
{
case x <5:
printf( "%.2lf\n不打折 ",a);
break;
case 5 <=x <10:
printf( "%.2lf\n折扣1% ",a*0.01);
break;
case 10 <=x <20:
printf( "%.2lf\n不打折 ",a*0.02);
break;
case 20 <=x <30:
printf( "%.2lf\n不打折 ",a*0.04);
break;
case 30 <=x:
printf( "%.2lf\n不打折 ",a*0.06);
break;

default:
printf( "你输入的不是个数 ");

}


}

---------------------------------------------
代码2

#include <stdio.h>
void main()
{
int x;
float a;
printf( "请输入购买了几件商品 ");
scanf( "%d ",&x);

printf( "请输入购买商品的价格: ");
scanf( "%f ",&a);
if(x <5)
{
printf( "商品不打折价(再去多买点撒):%.1f\n ",a);
}
else if(5 <=x&&x <10)
{
printf( "商品打0.01折价:%.1lf\n ",a-a*0.01);
}
else if(10 <=x&&x <20)
{
printf( "商品打0.02折价:%.1lf\n ",a-a*0.02);
}
else if(20 <=x&&x <30)
{
printf( "商品打0.04折价:%.1lf\n ",a-a*0.04);
}
else if(30 <=x)
{
printf( "商品打0.06折价:%.1lf\n ",a-a*0.06);
}


}

[解决办法]
没得case 10 <=x <20:这个写法。。
[解决办法]


楼主估计是随手写下去了,呵呵,改成
else if(5 <=x&&x <10)这种样子就ok了
[解决办法]
#include <stdio.h>
void main()
{
int x;
float a;
printf( "请输入购买了几件商品 ");
scanf( "%d ",&x);

printf( "请输入购买商品的价格: ");
scanf( "%f ",&a);
switch(x)
{
case x <5;
printf( "%.2lf\n不打折 ",a);
break;
case x <=10&&x> =5;
printf( "%.2lf\n折扣1% ",a*0.01);
break;
case x <=20&&x> =10;
printf( "%.2lf\n不打折 ",a*0.02);
break;
case x <=30&&x> =20;
printf( "%.2lf\n不打折 ",a*0.04);
break;
case 30 <=x;
printf( "%.2lf\n不打折 ",a*0.06);
break;

default:
printf( "你输入的不是个数 ");

}


}


case 10 <=x <20语法错误
还有请LZ注意冒号和分号的区别

读书人网 >C语言

热点推荐