美文网首页
个人所得税问题

个人所得税问题

作者: 一路向后 | 来源:发表于2021-10-17 17:19 被阅读0次

1.问题描述

编写一个计算个人所得税的程序,要求输入收入金额后,能够输出应缴的个人所得税。个人所得税征收办法如下:
起征点3500元
不超过1500元的部分,征收3%.
超过1500~4500元的部分,征收10%.
超过4500~9000元的部分,征收20%.
超过9000~35000元的部分,征收25%.
超过35000~55000元的部分,征收30%.
超过55000~80000元的部分,征收35%.
超过80000元的部分,征收45%.

2.源码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define TAXBASE 3500

/*定义结构体*/
typedef struct {
    long start;
    long end;
    double taxrate;
} TAXTABLE;

/*定义结构体数组*/
TAXTABLE TaxTable[] = {{0, 1500, 0.03}, {1500, 4500, 0.10}, {4500, 9000, 0.20}, {9000, 35000, 0.25}, {35000, 55000, 0.30}, {55000, 80000, 0.35}, {80000, 1e10, 0.45}};

/*计算所得税的函数*/
double CaculateTax(long profit)
{
    double tax = 0.0;
    int n = 0;
    int i;

    n = sizeof(TaxTable)/sizeof(TAXTABLE);
    profit -= TAXBASE;

    for(i=0; i<n; i++)
    {
        if(profit > TaxTable[i].start)
        {
            if(profit > TaxTable[i].end)
            {
                tax += (TaxTable[i].end - TaxTable[i].start) * TaxTable[i].taxrate;
            }
            else
            {
                tax += (profit - TaxTable[i].start) * TaxTable[i].taxrate;
                break;
            }
        }
    }

    return tax;
}

int main()
{
    long profit;
    double tax;

    printf("请输入个人收入金额: ");

    scanf("%ld", &profit);

    tax = CaculateTax(profit);

    printf("您的个人所得税为: %.2lf\n", tax);

    return 0;
}

3.编译源码

$ gcc -o test test.c -std=c89

4.运行及其结果

请输入个人收入金额: 4000
您的个人所得税为: 15.00

相关文章

网友评论

      本文标题:个人所得税问题

      本文链接:https://www.haomeiwen.com/subject/ayswoltx.html