PAT 分支结构-10一些思考

假设个人所得税为:税率 * (工资 - 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<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 与我的思路非常的类似,只是每做完一个判断进行一次输出,于是我用他的代码进行了尝试,居然通过了,我很困惑,希望日后能够解释这个问题。

posted @ 2015-06-20 14:54  yunzhan  阅读(294)  评论(0)    收藏  举报