今天听到别人讨论工资的事,听到关于利息方面的,让我想起了一个关于利润提成的经典算法,顺便就用C把工资利息算法编了下。
首先税收简单情况如下: computeTax=(应发工资-养老保险-基本医疗保险-住房公积金-费用扣除标准)
如果computeTax<=0 则工资不需要扣税,如果computeTax<=1500扣3%,如果1500<computeTax<=4500超1500部分扣10%,如果4500<computeTax<=9000超4500部分扣20%,如果9000<computeTax<=35000超9000部分扣25%,如果35000<computeTax<=55000超35000部分扣30%,如果55000<computeTax<=80000超55000部分扣35%,如果computer>80000则超80000部分扣45%。
-----很多都定义成了变量,可以自己改变标准值---呵呵-----
main()
{
long int i; //输入应发工资变量
double j; //定义实发工资变量
int endowment,medical,housing; //分别定义养老保险、基本医疗保险、住房公积金变量
int basemoney; //定义 费用扣除标准 作为扣税标准值
double computeTax; //定义扣税部分的值
double tax,tax15,tax45,tax90,tax350,tax550,tax800; //分别定义扣税额以及各部分超额所应扣的税值
printf("please input i:\n"); //首先输入应发工资
scanf("%ld",&i);
printf("please input endowment:\n"); scanf("%d",&endowment); //输入养老保险 ’多次输入有点麻烦,但比较好分辨些
printf("please input medical:\n"); scanf("%d",&medical); //输入基本医疗保险
printf("please input housing:\n"); scanf("%d",&housing); //输入住房公积金变量
printf("please input basemoney:\n"); scanf("%d",&basemoney); //输入 费用扣除标准
computeTax=i-endowment-medical-housing-basemoney; //计算出超出部分=应发工资-养老保险-医疗保险-住房公积金-费用扣除标准
//以下各个等级的税值计算
tax15=1500*0.03;
tax45=tax15+3000*0.1;
tax90=tax45+4500*0.2;
tax350=tax90+26000*0.25;
tax550=tax350+20000*0.3;
tax800=tax550+25000*0.35;
if(computeTax<=1500) tax=computeTax*0.03;
else if(computeTax<=4500) tax=tax15+(computeTax-1500)*0.1;
else if(computeTax<=9000) tax=tax45+(computeTax-4500)*0.2;
else if(computeTax<=35000) tax=tax90+(computeTax-9000)*0.25;
else if(computeTax<=55000) tax=tax350+(computeTax-35000)*0.3;
else if(computeTax<=80000) tax=tax550+(computeTax-55000)*0.35;
else tax=tax800+(computeTax-80000)*0.45;
j=i-endowment-medical-housing-tax; //实发工资=应发工资-养老保险-医疗保险-住房公积金-税值
printf("you pay is f",j); //输出实发工资
printf("\tyou tax is tax=%f\n",tax); //输出税值
}