看看我写错了没有,算出来的结果好象不对!
来源:百度知道 编辑:UC知道 时间:2024/06/17 01:12:30
考虑使用万元为单位
#include<stdio.h>
void main()
{
int x,y;
printf("请输入利润:");
scanf("%d",&x);
if(x<=10)
printf("应发的奖金为%d",y=x*0.1);
else if(x>10&&x<=20)
printf("应发的奖金为%d",y=(x-10)*0.075+10*0.1);
else if(x>20&&x<=40)
printf("应发的奖金为%d",y=(x-20)*0.05+10*0.075+10*0.1);
else if(x>40&&x<=60)
printf("应发的奖金为%d",y=(x-40)*0.03+20*0.05+10*0.075+10*0.1);
else if(x>60&&x<=100)
printf("应发的奖金为%d",y=(x-60)*0.015+20*0.03+20*0.05+10*0.075+10*0.1);
else if(x>100)
printf("应发的奖金为%d",y=(x-100)*0.01+40*0.015+20*0.03+20*0.05+10*0.075+10*0.1);
printf(&
把x,y改成float或double类型就行了,你用的是int型,强制取整了,比如你输入8,那么y=int(0.8)=0,当然不正确了。
另外if(x<=10)的else已经隐含了x>10,所以只要写else if(x<=20)就行了,其他的也同样如此。
if(x<=10)
printf("应发的奖金为%d",y=x*0.1);
else if(x<=20)
printf("应发的奖金为%d",y=(x-10)*0.075+10*0.1);
else if(x<=40)
printf("应发的奖金为%d",y=(x-20)*0.05+10*0.075+10*0.1);
else if(x<=60)
printf("应发的奖金为%d",y=(x-40)*0.03+20*0.05+10*0.075+10*0.1);
else if(x<=100)
printf("应发的奖金为%d",y=(x-60)*0.015+20*0.03+20*0.05+10*0.075+10*0.1);
else
printf("应发的奖金为%d",y=(x-100)*0.01+40*0.015+20*0.03+20*0.05+10*0.075+10*0.1);
else if(x>60&&x<=100)
printf("应发的奖金为%d",y=(x-60)*0.015+20*0.03+20*0.05+10*0.075+10*0.1);
else if(x>100)
printf("应发的奖金为%d",y=(x-100)*0.01+40*0.015+20*0.03+20*0.05+10*0.075+10*0.1);
--------------这两个地方写错了
应该是
else if(x>60&&x<=1