一个简单c程序的探讨
企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高 于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
下面是我编的,请问有没有其他的方法(注:if else 的变换不算)
#include<stdio.h>
#include<stdlib.h>
void main()
{
long int i;
int x1,x2,x4,x6,x10,x;
printf("请输入一个数(这里用80万测试):\n");
scanf("%d",&i);
x1=100000*0.1;
x2=x1+100000*0.075;
x4=x2+200000*0.05;
x6=x4+200000*0.03;
x10=x6+400000*0.015;
if(i<=100000)
x=i*0.1;
else if(i<=200000)
x=x1+(i-100000)*0.075;
else if(i<=400000)
x=x2+(i-200000)*0.05;
else if(i<=600000)
x=x4+(i-400000)*0.03;
else if(i<=1000000)
x=x6+(i-600000)*0.015;
else x=x10+(i-1000000)*0.01;
printf("计算的结果为:\n%d\n",x);
system("pause");
}
还有个问题就是 :
这个程序是有警告的,把int 改成double 就没有了,可是输入数据之后,显示的是0
不改呢 ,警告是不妨碍运行的 所以说是int 声明的话,结果就是对的
可不可以用别大方法,让其一举两得呢