高手们请帮我看看如何用switch语句编好下面一题的c语言编程题!

编程:某百货商场进行打折促销活动,消费金额(p)越高,折扣(d)越大,标准如下:
消费金额 折扣
p <100 0%
100≤p <200 5%
200≤p <500 10%
500≤p <1000 15%
p ≥1000 20%
从键盘输入消费金额, 输出折扣率和实付金额(f)。要求:

用switch语句实现!!!!!!!!!!

#include <stdio.h>
void main()
{
int a;
float p,d,f;
scanf("%f",&p);
a=p/100;
switch(a){

case 0 : printf("%f",p);break;
case 1 : printf("f=%f,p=%f,d=%f",p-p*(5.0/100.0),p,p*(5.0/100.0));break;
...
...
default :printf ("qing zai shu ru\n");
}
里面的语句块我就不再写了反正都一样~你应该会写对吧~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-10
很明显,case表达式是错误的,错误提示也是这个意思(英文的而已)。在c语言中,case所带的表达式必须为常量表达式,如:case
2:pro[t]='q'、case
'a':pro[t]='q'
或者
case
"ttg":pro[t]='q'这种类型,而你的写的是逻辑表达式,所以提示错误。解决办法:你只要改成
case
"ttg":
;case
"ctg":
pro[t]='q';break;就可以了。纯手打。。。
第2个回答  2007-03-27
a=p/100
switch(a){
case 0: 0%
case 1: 5%
case 2,3,4: 10%
case 5,6,7,8,9: 15%
default:
20%
}
第3个回答  2007-03-27
你在我空间来 解决 还有疑问 就在我贴吧来

参考资料:“福兴韵”贴吧

相似回答