/*设计一个个人所得税计算程序,输入收入所得,输出应纳个人所得说税额
应纳个人所得税税额 = (应纳税收入扣除标准)* 适用税率 - 速算扣除数
假设个人所得税起征点为2000元,月收入超过两千元,征收标准如表所示 P83
*/
/*表中的金额范围是超过起征点两千的钱数;
思路:1.输入要判断的钱数,
2.没有超过两千,不用交税,输入多少,输出多少
3.超过两千,按照表中数据用if嵌套判断其属于哪个范围
*/
#include "stdio.h"
int main()
{
float s,p,ind; //s:工资 p:超过两千的部分 ind:应该缴纳的个人所得税
while(1)
{
printf("Please Enter: ");
scanf("%f",&s); //输入工资
if(s>=0&&s<=2000) //判断是否超过2000,没有超过则不用缴纳个人所得税
printf("The following 2000 need not pay individual income tax \n");
else
{
p=s-2000;
if(p>0&&p<=500) //500 以内
ind=p*0.05;
else if(p>500&&p<=2000) //500-2000
ind=p*0.1-25;
else if(p>2000&&p<=5000) //2000-5000
ind=p*0.15-125;
else if(p>5000&&p<=20000) //5000-20000
ind=p*0.20-375;
else if(p>20000&&p<=40000) //20000-40000
ind=p*0.25-1375;
else if(p>40000&&p<=60000) //40000-60000
ind=p*0.3-3375;
else if(p>60000&&p<=80000) //60000-80000
ind=p*0.35-6375;
else if(p>80000&&p<=100000) //80000-100000
ind=p*0.40-10375;
else if(p>100000) //>100000
ind=p*0.45-15375;
printf("You should pay for Individual income tax : %.0f\n",ind);
}
}
return 0;
}
注意:1.计算的公式
2.注释
3.简洁提示
4.最后输出的语句要放在else中
5.return 0;不能放在循环中
6.p=s-2000;要放在else 的嵌套循环里
不然会导致p的值一直没有初始化,计算出来的个人所得税都是0
对,就是进入循环之后,就一直在执行循环里面的语句,p=s-2000;这个语句不是初始化语句,不是执行一次之后就一直把这个值给变量p,应该是输入一次就要执行这个语句,而且必须是在输入之后再去执行这个语句才是有效的