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

栏目: C · 发布时间: 5年前

内容简介:编写一个计算个人所得税的程序,要求输入收入金额后,能够输出应缴的个人所得税。 个人所得税征收办法如下:个人所得税是根据收入金额划分为不同阶段征收的,分析题目特点,可以使用结构体来描述题目中的条件。可以使用结构体数组存放不同的税率范围。接着使用 for 循环遍历每一个征税范围,将个人收入中超出起征点的金额在每个征税范围内应缴纳的税款累加起来,就得到最后应缴纳的个人所得税。

问题描述

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

  • ◎ 起征点为3500元;
  • ◎ 不超过1500元的部分,征收3%;
  • ◎ 超过1500〜4500元的部分,征收10%;
  • ◎ 超过4500〜9000元的部分,征收20%;
  • ◎ 超过9000〜35000元的部分,征收25%;
  • ◎ 超过35000〜55000元的部分,征收30%;
  • ◎ 超过55000〜80000元的部分,征收35%;
  • ◎ 超过80000元以上的,征收45%。

问题分析

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

算法设计

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

纳税金额流程图:

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

下面是完整的代码:

#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;

}

运行结果:

请输入个人收入金额: 3000

征税范围:    0~  1500  该范围内缴税金额: 30.00  超出该范围的金额:    0

您的个人所得税为: 30.00

linuxidc@linuxidc:~/linuxidc.com$ ./linuxidc.com

请输入个人收入金额: 5000

征税范围:    0~  1500  该范围内缴税金额: 45.00  超出该范围的金额:  1500

您的个人所得税为: 45.00

linuxidc@linuxidc:~/linuxidc.com$ ./linuxidc.com

请输入个人收入金额: 60000

征税范围:    0~  1500  该范围内缴税金额: 45.00  超出该范围的金额: 56500

征税范围:  1500~  4500  该范围内缴税金额:345.00  超出该范围的金额: 52000

征税范围:  4500~  9000  该范围内缴税金额:1245.00  超出该范围的金额: 43000

征税范围:  9000~ 35000  该范围内缴税金额:7745.00  超出该范围的金额:  8000

您的个人所得税为: 7745.00

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

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-12/155755.htm


以上所述就是小编给大家介绍的《C语言计算个人所得税问题代码及解析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

无界面交互

无界面交互

[美]Golden Krishna / 杨名 / 人民邮电出版社 / 2017-1 / 49.00元

“真希望在硅谷工作的人们已经读过这本书了。”——Doug LeMoine,Cooper总经理 “这本书的写作看似随意,字里行间却透着一种辛辣、幽默的反叛精神,这种精神可以帮助我们走出当今交互设计的界面泥潭。当你心情低落时,不妨翻开这本书,读上几页,你会开始微笑,大笑,并从中学到很多东西。书中的文字有一股振奋人心的力量。”——Don Norman,加州大学圣迭戈分校设计实验室主任,《设计心理学......一起来看看 《无界面交互》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具