进阶项目5-个税计算器之码数分离

任务和代码:编写程序,利用这个结构体数组,输入个人月收入总额,计算并输出他本月应缴税款和税后收入。 
附:关于个人所得税的有关背景知识 
计算方法:个人所得税=(收入总额-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;
}

程序运行结果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值