下面是我针对题目所做的c语言编程,我想知道哪里出了错。输入数值,输出全部为0.怎么会这样??

己知某公司员工的保底薪水为500,某月所接工程的利润p与利润提成的关系如下:(计量单位:元)(选作)p<=1000 没有提成1000<p<=2000 提成10%2000<p<=5000 提成15%5000<p<=10000 提成20%10000<p 提成25%#includeint main(){float p,q;scanf("%f",&p);switch(p<=1000) {case 1:q=0;break;case 0:switch(1000<p&&p<=2000) {case 1:q=0.1*p;break;case 0:switch(2000<p&&p<=5000) {case 1:q=0.15*p;break;case 0:switch(5000<p&&p<=10000) {case 1:q=0.2*p;break;case 0:q=0.25*p;}}}}printf("%d\n",q); return 0;}

第1个回答  2015-10-21
switch不是你这样用的,你再看去下吧。
#include<stdio.h>
void main()
{
float p,q;
scanf("%f",&p);
if(p<=1000)
printf("500\n");
else if(p>1000&&p<=2000)
{
q=500+p*0.1;
printf("%f\n",q);
}
else if(p>2000&&p<=5000)
{
q=500+p*0.15;
printf("%f\n",q);
}
else if(p>5000&&p<=10000)
{
q=500+p*0.2;
printf("%f\n",q);
}
else if(p>10000)
{
q=500+p*0.25;
printf("%f\n",q);
}
}追问

这是用if的,但我需要的是switch的

追答

哦哦。

第2个回答  2015-10-21
最后的输出
printf("%d\n",q); 改为 printf("%f\n",q);
第3个回答  2015-10-21
switch 用的夸张,看看书吧。用if结构不是更好?
第4个回答  2015-10-21
switch的用法很有想象力,自己看书去吧。
第5个回答  2015-10-21
printf("%f\n",q)本回答被提问者采纳
相似回答