设为首页 加入收藏

TOP

C语言计算个人所得税问题代码及解析
2018-12-11 14:10:46 】 浏览:106
Tags:语言 计算 个人所得税 问题 代码 解析

问题描述


编写一个计算个人所得税的程序,要求输入收入金额后,能够输出应缴的个人所得税。 个人所得税征收办法如下:


问题分析


个人所得税是根据收入金额划分为不同阶段征收的,分析题目特点,可以使用结构体来描述题目中的条件。


算法设计


可以使用结构体数组存放不同的税率范围。接着使用 for 循环遍历每一个征税范围,将个人收入中超出起征点的金额在每个征税范围内应缴纳的税款累加起来,就得到最后应缴纳的个人所得税。


纳税金额流程图:



下面是完整的代码:


#include <stdio.h>
#include <limits.h>
#define TAXBASE  2000
/*定义结构体*/
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, LONG_MAX, 0.45}
};

double CaculateTax(long profit)
{
    int i;
    double tax = 0.0;
    profit -= TAXBASE;
    for(i=0; i<sizeof(TaxTable)/sizeof(TAXTABLE); 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;
            }
            profit -= TaxTable[i].end;
            printf("征税范围:%6ld~%6ld  该范围内缴税金额:%6.2f  超出该范围的金额:%6ld\n",
                  TaxTable[i].start, TaxTable[i].end,tax, (profit)>0 ? profit:0);
        }
    }
    return tax;
}
int main()
{
    long profit;
    double tax;
    printf("请输入个人收入金额: ");
    scanf("%ld", &profit);
    tax = CaculateTax(profit);
    printf("您的个人所得税为: %.2f\n", tax);
 
    return 0;
}


运行结果:


C语言计算个人所得税问题代码及解析


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言实现任意进制转换代码及解析 下一篇数据结构之二叉查找树Java实现源..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目