标题:个人所得税计算(if嵌套 求大佬看看我哪里错了)求指教,认个师傅
只看楼主
a1305603840
Rank: 2
等 级:论坛游民
帖 子:9
专家分:10
注 册:2019-10-10
结帖率:80%
已结贴  问题点数:5 回复次数:5 
个人所得税计算(if嵌套 求大佬看看我哪里错了)求指教,认个师傅
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
    double gz,ns,js,sl,ss,ds;
    scanf("%lf",&gz);//gz=工资输入
    if(gz<500)
    {
        sl=0.05;ss=0;
    }
    else if(gz>500&&gz<=2000)
    {
        sl=0.1;ss=25;
    }
    else if(gz>2000&&gz<=5000)
    {
        sl=0.15;ss=125;
    }
    else if(gz>5000&&gz<=20000)
    {
        sl=0.2;ss=375;
    }
    else if(gz>20000&&gz<=40000)
    {
        sl=0.25;ss=1375;
    }
    else if(gz>40000&&gz<=60000)
    {
        sl=0.3;ss=3375;
    }
    else if(gz>60000&&gz<=80000)
    {
        sl=0.35;ss=6375;
    }
    else if(gz>80000&&gz<=100000)
    {
        sl=0.4;ss=10375;        
    }
    else if(gz>100000)
    {
        sl=0.45;ss=15375;
    }
    ns=gz-(gz*0.23)-2000; //应纳税所得额
    js=ns*sl-ss;//应纳个人所得税 //ss=速算扣除数
    ds=gz-(gz*0.23)-js;//拿到手的工资
    printf("%.2f",ds);
    return 0;
}


[此贴子已经被作者于2019-10-18 08:46编辑过]

搜索更多相关主题的帖子: 师傅 if 计算 所得税 嵌套 
2019-10-18 07:34
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:3 
程序代码:
#include <stdio.h>

int main( void )
{
    double gz;
    scanf( "%lf", &gz );

    double sl, ss;
         if( gz <=    500 ) sl=0.05, ss=    0;
    else if( gz <=   2000 ) sl=0.10, ss=   25;
    else if( gz <=   5000 ) sl=0.15, ss=  125;
    else if( gz <=  20000 ) sl=0.20, ss=  375;
    else if( gz <=  40000 ) sl=0.25, ss= 1375;
    else if( gz <=  60000 ) sl=0.30, ss= 3375;
    else if( gz <=  80000 ) sl=0.35, ss= 6375;
    else if( gz <= 100000 ) sl=0.40, ss=10375;
    else                    sl=0.45, ss=15375;

    double yd = (gz-gz*0.23) - ((gz-gz*0.23-2000)*sl - ss); // 输出与题目示例不符,且题目竟然没要求考虑中间结果可能为负值的情况
    printf( "%.2f\n", yd );
}
2019-10-18 10:25
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:3 
程序代码:
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
    double gz,ns,js,sl,ss,ds,s2;
    scanf("%lf",&gz);//gz=工资输入
    gz=gz*(1-0.23);
    if(gz<500)
    {
        sl=0.05;ss=0;
    }
    else if(gz>500&&gz<=2000)
    {
        sl=0.1;ss=25;s2=500;
    }
    else if(gz>2000&&gz<=5000)
    {
        sl=0.15;ss=125;s2=2000;
    }
    else if(gz>5000&&gz<=20000)
    {
        sl=0.2;ss=375;s2=5000;
    }
    else if(gz>20000&&gz<=40000)
    {
        sl=0.25;ss=1375;s2=20000;
    }
    else if(gz>40000&&gz<=60000)
    {
        sl=0.3;ss=3375;s2=40000;
    }
    else if(gz>60000&&gz<=80000)
    {
        sl=0.35;ss=6375;s2=60000;
    }
    else if(gz>80000&&gz<=100000)
    {
        sl=0.4;ss=10375;s2=80000;
    }
    else if(gz>100000)
    {
        sl=0.45;ss=15375;
    }
    ns=gz-s2; //应纳税所得额
    js=ns*sl-ss;//应纳个人所得税 //ss=速算扣除数
    ds=gz-js;//拿到手的工资
    printf("%.2f",ds);
    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-10-25 21:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 3楼 纯蓝之刃
对照你的代码,我终于看懂了题意。那if中的gz是不是得减去2000?
2019-10-28 08:58
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:0 
if循环用于选择sl(税率),就是判断 ns(应缴纳所得额) 的范围,
而   ns   =工资-(3险1金)-扣除标准额。

楼主的程序在输入工资后,直接if语句判断 ns 的范围,而此时 ns 还没有赋值计算,怎么得出正确的结果??
程序是顺序执行的,if()不会跑到后面去抓取 ns 的值来判断。
2019-10-28 11:14
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:0 
回复 4楼 rjsp
if里的gz不能减去2000,因为要根据到手工资判断纳税标准的。在if之后计算个人所得税的时候减去两千计算纳税额。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-10-28 12:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497331-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.334319 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved