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

本文介绍了如何使用Java编程计算个人所得税。程序根据不同的收入区间应用不同的税率,包括起征点、不同税率段的划分等。通过结构体数组存储税率信息,并使用循环计算应缴税款。示例代码展示了具体的计算过程。
摘要由CSDN通过智能技术生成

问题描述

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

◎ 起征点为3500元;

◎ 不超过1500元的部分,征收3%;

◎ 超过1500〜4500元的部分,征收10%;

◎ 超过4500〜9000元的部分,征收20%;

◎ 超过9000〜35000元的部分,征收25%;

◎ 超过35000〜55000元的部分,征收30%;

◎ 超过55000〜80000元的部分,征收35%;

◎ 超过80000元以上的,征收45%。

问题分析

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

算法设计

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

纳税金额流程图:

e91f8dec8a6c80fb089e1d596432c632.png

下面是完整的代码:

#include

#include

#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

{

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

0ede45d524eec29331cca4797404874a.png

0b1331709591d260c1c78e86d0c51c18.png

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值