任务和代码:编写程序,利用这个结构体数组,输入个人月收入总额,计算并输出他本月应缴税款和税后收入。
附:关于个人所得税的有关背景知识
计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数
从2011年9月1日起,我国个人所得税起征点基数为3500元,超出部分按以下7级计算。
程序运行结果:
附:关于个人所得税的有关背景知识
计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数
从2011年9月1日起,我国个人所得税起征点基数为3500元,超出部分按以下7级计算。
序号 | 收入范围 | 税率 | 速算扣除数 |
---|---|---|---|
1 | 超过0至1500 | 3% | 0 |
2 | 超过1500元至4500元的部分 | 10% | 105 |
3 | 超过4500元至9000元的部分 | 20% | 555 |
4 | 超过9,000元至35,000元的部分 | 25% | 1005 |
5 | 超过35,000元至55,000元的部分 | 30% | 2755 |
6 | 超过55,000元至80,000元的部分 | 35% | 5505 |
7 | 超过80,000以上 | 45% | 13505 |
例如:王某月收入总额3600元,个人所得税=(3600-3500)*3%=3元;
再例:李某月收入13500元,个人所得税=(13500-3500)*25%-1005=2500-1005=1495元。
/*
文件名:main.c
作者:小风景
完成日期:2016.7.28
问题描述:编写程序,利用这个结构体数组,输入个人月收入总额,计算并输出他本月应缴税款和税后收入。
附:关于个人所得税的有关背景知识
计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数
从2011年9月1日起,我国个人所得税起征点基数为3500元,超出部分按以下7级计算。
计算。
程序输出:
*/
#include <stdio.h>
struct TaxNode
{
int payTax;
double rate;
int deducted;
} taxNode[10]=
{
{0,0.03,0},
{1500,0.10,105},
{4500,0.20,555},
{9000,0.25,1005},
{35000,0.30,2755},
{55000,0.35,5505},
{80000,0.45,13505}
};
int main()
{
int base = 3500;
int income = 0;
float actualincom = 0;
int extentmoney = 0;
float pay = 0;
int i = 0;
printf("请输入个人月收入总额:");
scanf("%d",&income);
extentmoney = income - base;
if(extentmoney <= 0)
{
printf("您不需要缴纳个人所得税!\n");
}
else
{
for(i = 6;i >=0;i--)
{
if(extentmoney > taxNode[i].payTax)
{
printf("您需要缴纳第%d档的税\n",i+1);
pay = extentmoney * taxNode[i].rate - taxNode[i].deducted;
printf("您需要缴纳的个人所得税是 %.2f元!\n",pay);
break;
}
}
}
actualincom = income - pay;
printf("您的税后收入为:%.2f元",actualincom);
return 0;
}
程序运行结果: