首页 > 技术文章 > 实验3-6 计算个人所得税 (10 分)

lures 2021-03-07 08:51 原文

假设个人所得税为:税率×(工资−1600)。请编写程序计算应缴的所得税,其中税率定义为:

  • 当工资不超过1600时,税率为0
  • 当工资在区间(1600, 2500]时,税率为5%
  • 当工资在区间(2500, 3500]时,税率为10%
  • 当工资在区间(3500, 4500]时,税率为15%
  • 当工资超过4500时,税率为20%

输入格式:

输入在一行中给出非负工资。

输出格式:

在一行输出个人所得税,精确到小数点后2位。

输入样例1:

1600

输出样例1:

0.00

输入样例2:

1601

输出样例2:

0.05

输入样例3:

3000

输出样例3:

140.00

输入样例4:

4000

输出样例4:

360.00

输入样例5:

5000

输出样例5:

680.00

代码:

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

int main() {
    double salary,pay;
    scanf("%lf",&salary);
    if (salary <= 1600) pay = 0;
    else if (salary <= 2500) {
        pay = (salary - 1600) * 0.05;
    }else if (salary <= 3500) {
        pay = (salary - 1600) * 0.1;
    }else if (salary <= 4500) {
        pay = (salary - 1600) * 0.15;
    }else {
        pay = (salary - 1600) * 0.2;
    }
    printf("%.2lf",pay);
    return 0;
}

提交截图:

在这里插入图片描述

解题思路:

只是主人的任务(分段函数的应用~)罢了,其实这么设置蛮不合理的,我觉得应该是每个档按照该档的税率交,比如:我每月薪资4500元,那么我需要交的费用是:
0 + (2500 - 1600) * 0.05 + (3500 - 2500) * 0.1 + (4500 - 3500) * 0.15 = 295.0

推荐阅读