假设个人所得税为:税率 * (工资 - 1600)。请编写程序计算应缴的所得税,其中税率定义为:
输入格式:
输入在一行中给出非负工资。
输出格式:
在一行输出个人所得税,精确到小数点后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<stdio.h> 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 }
但是并没有通过,而是出现了如下的错误信息:
显示我的答案是有错误的,我按照题目的要求在本地测试,得出的结果是正确的。并且,我在CSDN的博客上看到了类似的答案,是这样的,参考http://blog.csdn.net/nirvana_wzj/article/details/38677713 与我的思路非常的类似,只是每做完一个判断进行一次输出,于是我用他的代码进行了尝试,居然通过了,我很困惑,希望日后能够解释这个问题。
原文:http://www.cnblogs.com/yuntop/p/4590532.html