假设个人所得税为:税率 * (工资 - 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
以上是题目的要求,下面是我写的代码
1 #include
2 int main(){
3 float Payroll,Tex_rate,Sum;
4 scanf("%f",&Payroll);
5
6 if(Payroll<=1600)
7 Tex_rate=0;
8 else if(Payroll<=2500)
9 Tex_rate=0.05;
10 else if(Payroll<=3500)
11 Tex_rate=0.1;
12 else if(Payroll<=4500)
13 Tex_rate=0.15;
14 else
15 Tex_rate=0.2;
16 // Sum=(Payroll-1600)*Tex_rate;
17 printf("%.2f\n",(Payroll-1600)*Tex_rate);
18 return 0;
19 }
但是并没有通过,而是出现了如下的错误信息:
![技术分享](https://img1.php1.cn/3cd4a/24d65/525/b19ff9ac4442f01d.jpeg)
显示我的答案是有错误的,我按照题目的要求在本地测试,得出的结果是正确的。并且,我在CSDN的博客上看到了类似的答案,是这样的,参考http://blog.csdn.net/nirvana_wzj/article/details/38677713 与我的思路非常的类似,只是每做完一个判断进行一次输出,于是我用他的代码进行了尝试,居然通过了,我很困惑,希望日后能够解释这个问题。