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

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

内容简介:编写一个计算个人所得税的程序,要求输入收入金额后,能够输出应缴的个人所得税。 个人所得税征收办法如下:个人所得税是根据收入金额划分为不同阶段征收的,分析题目特点,可以使用结构体来描述题目中的条件。可以使用结构体数组存放不同的税率范围。接着使用 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语言计算个人所得税问题代码及解析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

UNIX网络编程 卷1:套接字联网API(第3版)

UNIX网络编程 卷1:套接字联网API(第3版)

[美]W. 理查德•史蒂文斯(W. Richard Stevens)、比尔• 芬纳(Bill Fenner)、安德鲁 M. 鲁道夫(Andrew M. Rudoff) / 匿名 / 人民邮电出版社 / 2014-6-1 / 129.00

《UNIX环境高级编程(第3版)》是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX行业发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/......一起来看看 《UNIX网络编程 卷1:套接字联网API(第3版)》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具