假设个人所得税为:税率×(工资−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