C 阶梯式个人所得税计算

        阶梯式个人所得税计算,一般做法就是大段的if...else...来计算最后的总税额。但是代码效果并不好,代码显得啰嗦,一旦税率,阶梯数量或阶梯收入发生变化,修改影响也比较多,可读性、可维护性、扩展性都不高。

        可以考虑将阶梯及税率做成数组,然后用循环变量数组计算,代码简单,当税率、阶梯发生变化时,只需要修改数组即可,具体代码段无影响。
 

#include <stdio.h>
#include <stdlib.h>
#define R_SIZE 7
int main()
{
    float g[R_SIZE] = {80000,55000,35000,9000,4500,1500,0};
    float r[R_SIZE] = {0.45,0.35,0.3,0.25,0.2,0.1,0.03};
    float income,s,tax = 0;
    scanf("%f%f",&income,&s);
    income -= s;
    for(int i=0;i<R_SIZE;i++)
    {
        if(income >= g[i])
        {
            tax += (income - g[i])*r[i];
            income = g[i];
        }
    }
    printf("%.2f\n",tax);
    system("pause");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值