| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 816 人关注过本帖
标题:工资税 愁
只看楼主 加入收藏
耐个
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2010-10-4
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:7 
工资税 愁
题目:工资纳税系统 个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。个人所得税税率表一(工资、薪金所得适用) 级数----------全月应纳税所得额----------税率(%)
1--------------不超过500元的--------------------------5
2----------超过500元至2000元的部分------------10
3----------超过2000元至5000元的部分----------15
4----------超过5000元至20000元的部分---------20
5----------超过20000元至40000元的部分-------25
6----------超过40000元至60000元的部分-------30
7----------超过60000元至80000元的部分-------35
8----------超过80000元至100000元的部分------40
9----------超过100000元的部分---------------------45
表中的应纳税所得额是指以每月收入额减除1600元后的余额。 例如:计算为:2500-1600=900 应纳个人所得税额=500×5%+400×10% =65 再比如:我们用一个大额工资计算,25000元 应纳税所得额=25000-1600=23400 应纳个人所得税税额=500×5%+1500×10%+3000×15%+15000×20%+3400×25%=4475 要求:输入工资计算出纳税金额。   


我编了如下程序
/*  HELLO.C -- Hello, world */

#include "stdio.h"
#include "conio.h"

main()
{
  int s;
  float t,n;
   scanf("%d",&s);
   n=s-1600;
   if(n<=500&&n>0)
    {t=n*0.05;
     }
    else if (n>=500&&n<2000)
     {t=25+(n-500)*0.1;
       }
         else if(n>=2000&&n<5000)
         {t=25+150+(n-2000)*0.15;
         }
               else if(n>=5000&&n<20000)
                   {t=25+150+450+(n-5000)*0.2;
                    }
                    else if(n>=20000&&n<40000)
                    {t=25+150+450+3000+(n-20000)*0.25;
                    }
                         else if(n>=40000&&n<60000)
                               {t=25+150+450+3000+5000+(n-40000)*0.3;
                               }
                               else if(n>=60000&&n<80000)
                                     {t=25+150+450+3000+5000+6000+(n-60000)*0.35;
                                     }
                                     else if (n>=80000&&n<100000)
                                     {t=25+150+450+3000+5000+6000+7000+(n-80000)*0.4;
                                     }
                                          else {t=t=25+150+450+3000+5000+6000+7000+8000+(n-100000)*0.45;}

    printf("%f",t);
    getch();

}
运行到35000以上,输出就变为0了
请教一下这个是为啥子呢?
还有如果有更简单的编法,求赐教
搜索更多相关主题的帖子: 所得税 个人 
2011-05-31 13:28
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:4 
这个题在哪里做过的。
2011-05-31 13:43
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:4 
程序代码:
#include <stdio.h>

int main(void) {
    int salary, pit = 0;
    scanf("%d", &salary);
    if(salary - 1600 > 0) {
        if(salary - (1600 + 500) > 0) {
            if(salary - (1600 + 2000) > 0) {
                if(salary - (1600 + 5000) > 0) {
                    if(salary - (1600 + 20000) > 0) {
                        if(salary - (1600 + 40000) > 0) {
                            if(salary - (1600 + 60000) > 0) {
                                if(salary - (1600 + 80000) > 0) {
                                    if(salary - (1600 + 100000) > 0) {
                                        pit += 500 * 0.05;
                                        pit += 1500 * 0.1;
                                        pit += 3000 * 0.15;
                                        pit += 15000 * 0.2;
                                        pit += 20000 * 0.25;
                                        pit += 20000 * 0.3;
                                        pit += 20000 * 0.35;
                                        pit += 20000 * 04;
                                        pit += (salary - (1600 + 100000)) * 0.45;
                                    } else {
                                        pit += 500 * 0.05;
                                        pit += 1500 * 0.1;
                                        pit += 3000 * 0.15;
                                        pit += 15000 * 0.2;
                                        pit += 20000 * 0.25;
                                        pit += 20000 * 0.3;
                                        pit += 20000 * 0.35;
                                        pit += (salary - (1600 + 80000)) * 0.4;
                                    }
                                } else {
                                    pit += 500 * 0.05;
                                    pit += 1500 * 0.1;
                                    pit += 3000 * 0.15;
                                    pit += 15000 * 0.2;
                                    pit += 20000 * 0.25;
                                    pit += 20000 * 0.3;
                                    pit += (salary - (1600 + 60000)) * 0.35;
                                }
                            } else {
                                pit += 500 * 0.05;
                                pit += 1500 * 0.1;
                                pit += 3000 * 0.15;
                                pit += 15000 * 0.2;
                                pit += 20000 * 0.25;
                                pit += (salary - (1600 + 40000)) * 0.3;
                            }
                        } else {
                            pit += 500 * 0.05;
                            pit += 1500 * 0.1;
                            pit += 3000 * 0.15;
                            pit += 15000 * 0.2;
                            pit += (salary - (1600 + 20000)) * 0.25;
                        }
                    } else {
                        pit += 500 * 0.05;
                        pit += 1500 * 0.1;
                        pit += 3000 * 0.15;
                        pit += (salary - (1600 + 5000)) * 0.2;
                    }
                } else {
                    pit += 500 * 0.05;
                    pit += 1500 * 0.1;
                    pit += (salary - (1600 + 2000)) * 0.15;
                }
            } else {
                pit += 500 * 0.05;
                pit += (salary - (1600 + 500)) * 0.1;
            }
        } else {
            pit += (salary - (1600)) * 0.05;
        }
    }
    printf("%d\n", pit);
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册




[ 本帖最后由 lz1091914999 于 2011-5-31 14:20 编辑 ]

My life is brilliant
2011-05-31 14:13
耐个
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2010-10-4
收藏
得分:0 
回复 3楼 lz1091914999
我的程序运行了以后 为啥35000+就成0了? 求解释
2011-05-31 17:27
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:4 
图片附件: 游客没有浏览图片的权限,请 登录注册

楼主用的什么编译器?我用c-free5编译运行很好啊?
2011-05-31 17:50
耐个
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2010-10-4
收藏
得分:0 
回复 5楼 laigaoat2005
win tc  还好还好我的程序没有出错
你的程序太好了 看不懂你那种编法……
2011-05-31 18:38
liulei1234
Rank: 2
等 级:论坛游民
帖 子:32
专家分:24
注 册:2011-5-31
收藏
得分:4 
这个程序序如何用case语句编啊,case语句应该更适合简洁吧,求解答,谢谢
2011-06-01 15:04
wangnengchao
Rank: 2
等 级:论坛游民
帖 子:90
专家分:55
注 册:2011-5-2
收藏
得分:4 
//之前我自己这样编的,楼主看看吧,可能稍微欠缺//
/* 法律规定征收个人所得税的底线是1600元/月,也就是超过1600元的工资、薪金才开始计收个人所得税,超过1600元的这部分收入
被称为全月应纳稅所得额。个人所得税的计算方法:如果全月应纳税所得额不超过500元,则这部分税率是5%;而超过500元至2000元
的部分,其税率是10%;超过2000元至5000元的部分,其税率是15%;超过5000元至20000元的部分,其税率是20%;超过20000元至40000
元的部分,其税率是25%;超过40000元至60000元的部分,其税率是30%;超过60000元至80000元的部分,其税率是35%;超过80000元至
100000元的部分,其税率是40%;超过100000元的部分,其税率是45%。
   例如:某人于某月的工资、薪金总和是2500元,则他应缴纳个人所得税税额的计算
方法是:
       全月应纳税所得额=2500-1600=900
       根据规定,900元上税的税额=500*5%+400*10%=65
       编写一个程序,实现根据输入的工资、薪金总和的金额,程序能自动计算和显示缴纳个人所得税的税额。 */
#include <stdio.h>
int main(void)
{   
    double salary,x,tax;
    dise:
    printf("Please input your salary: ");
   
    scanf("%lf",&salary);   
    if(salary<=1600)
    {
       tax=0;
       printf("tax=%f\n",tax);
    }
    else if(salary>1600&&salary<=2100)   
    {
       x=salary-1600;
       tax=x*0.05;
       printf("tax=%f\n",tax);
    }
    else if(salary>2100&&salary<=4100)
    {
       x=salary-2100;
       tax=500*0.05+x*0.1;
       printf("tax=%f\n",tax);
    }
    else if(salary>4100&&salary<=9100)
    {
        x=salary-4100;
        tax=500*0.05+1500*0.1+x*0.15;
        printf("tax=%f\n",tax);
   
    }
    else if(salary>9100&&salary<=29100)
    {
         x=salary-9100;
         tax=500*0.05+1500*0.1+3000*0.15+x*0.2;
         printf("tax=%f\n",tax);
    }
    else if(salary>29100&&salary<=69100)
    {
         x=salary-29100;
         tax=500*0.05+1500*0.1+3000*0.15+15000*0.2+x*0.25;
         printf("tax=%f\n",tax);
    }
    else if(salary>69100&&salary<=129100)
    {
         x=salary-69100;
         tax=500*0.05+1500*0.1+3000*0.15+15000*0.2+20000*0.25+x*0.3;
         printf("tax=%f\n",tax);
    }
    else if(salary>129100&&salary<=209100)
    {
         x=salary-129100;
         tax=500*0.05+1500*0.1+3000*0.15+15000*0.2+20000*0.25+20000*0.3+x*0.35;
         printf("tax=%f\n",tax);
    }
    else if(salary>209100&&salary<=309100)
    {
         x=salary-209100;
         tax=500*0.05+1500*0.1+3000*0.15+15000*0.2+20000*0.25+20000*0.3+20000*0.35+x*0.4;
         printf("tax=%f\n",tax);
    }
    else if(salary>309100)
    {
         x=salary-309100;
         tax=500*0.05+1500*0.1+3000*0.15+15000*0.2+20000*0.25+20000*0.3+20000*0.35+20000*0.4+x*0.45;
         printf("tax=%f\n",tax);
    }
    goto dise;
   
    return 0;
   
}
2011-06-01 15:49
快速回复:工资税 愁
数据加载中...
 
   



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

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