| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 973 人关注过本帖
标题:《求助》大家看我的程序哪里出问题了。。
只看楼主 加入收藏
回水
Rank: 2
来 自:广东湛江
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-3-3
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:12 
《求助》大家看我的程序哪里出问题了。。
国家颁布并从2006年1月1日起开始实施的个人所得税随率(工资、薪金所得适用)见表2.3。其起点为1600元,即计算纳税金额是,先扣除1600元,再按照表2.3计算。

 表2.3            个人所得税(工资、薪金所得适用)
       全月应纳税所得额    税率(%)
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
  请设计一个c语言程序,对输入的任何一个月收入计算应交税金额。


#include <stdio.h>
int main (void){
    float a=0,s=0;
    printf ("请输入您月工资\n");
    scanf ("%f",&a);
    if (a<=1600)
       printf("不用交税");
    if ((a-1600)<=500)
       s=(a-1600)*(5/100);
       printf ("s=%f");
    if ((500<a-1600)&&(a-1600<=2000))
       s=((a-1600)*(10/100));   
       printf ("所交的税:s=%d",s);
    if ((2000<a-1600)&&(a-1600<5000))
       s=((a-1600)*(15/100));
       printf ("所交的税:s=%d",s);
    if ((5000<(a-1600))&&(a-1600<=20000))
       s=((a-1600)*(20/100));
       printf ("所交的税:s=%d",s);
    if  ((20000<a-1600)&&(a-1600<=40000))
       s=((a-1600)*(25/100));
       printf("所交的税:s=%d",s);
    if ((40000<a-1600)&&(a-1600<60000))
       s=((a-1600)*(30/100));
       printf("所交的税:s=%d",s);
    if ((60000<a-1600)&&(a-1600<=80000))
       s=((a-1600)*(35/100));
       printf("所交的税:s=%d",s);
    if ((80000<a-1600)&&(a-1600<100000))
       s=((a-1600)*(40/100));
       printf("所交的税:s=%d",s);
    if (a-1600>10000)
       s=((a-1600)*(45/100));
       printf("所交的税:s=%d",s);
    return 0;
}


























搜索更多相关主题的帖子: 所得税 起点 
2011-03-08 17:16
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
每一个if语句都应加上花括号
程序代码:
if (a<=1600){
       printf("不用交税");
}
    if ((a-1600)<=500) {
       s=(a-1600)*(5/100);
       printf ("s=%f");
}
    if ((500<a-1600)&&(a-1600<=2000)) {
       s=((a-1600)*(10/100));    
       printf ("所交的税:s=%d",s);
}
    if ((2000<a-1600)&&(a-1600<5000)) {
       s=((a-1600)*(15/100));
       printf ("所交的税:s=%d",s);
}
    if ((5000<(a-1600))&&(a-1600<=20000)) {
       s=((a-1600)*(20/100));
       printf ("所交的税:s=%d",s);
}
    if  ((20000<a-1600)&&(a-1600<=40000)) {
       s=((a-1600)*(25/100));
       printf("所交的税:s=%d",s);
}
    if ((40000<a-1600)&&(a-1600<60000)) {
       s=((a-1600)*(30/100));
       printf("所交的税:s=%d",s);
}
    if ((60000<a-1600)&&(a-1600<=80000)) {
       s=((a-1600)*(35/100));
       printf("所交的税:s=%d",s);

 }
   if ((80000<a-1600)&&(a-1600<100000)) {
       s=((a-1600)*(40/100));
       printf("所交的税:s=%d",s);
}
    if (a-1600>10000) {
       s=((a-1600)*(45/100));
       printf("所交的税:s=%d",s);
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-08 17:19
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
收藏
得分:5 
学习学习!
2011-03-08 17:21
回水
Rank: 2
来 自:广东湛江
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-3-3
收藏
得分:0 
回复 2楼 ansic
为什么输入任何数   结果都为0?
2011-03-08 22:50
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:5 
你的变量s本来是float型 你输出却是%d整形 单从这个可以推出一点:S的小数点被舍去了 或者 问内存吧 反汇编看看

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2011-03-08 22:53
编程2011
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:73
专家分:19
注 册:2011-3-3
收藏
得分:5 
5/100,15/100,20/100.....除完后是取整数的,即0.05.0.1.....等都会变成0,所以你的结果全变成0就不难怪了
2011-03-08 23:02
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
调试通过。你自己对照一遍吧
程序代码:
#include <stdio.h>
int main (void){

    float a,s;
    printf ("enter:");
    scanf ("%f",&a);

    if (a<=1600) {
                printf("No\n");
        }else{
                if ((a-1600)<=500) {
                        s=(a-1600)*.05;
                        printf ("s=%f",s);
        }
        if ((a-1600)>500&&(a-1600)<=2000) {
                        s=(a-1600)*.10;
                        printf ("s=%f",s);
        }
        if ((a-1600)>2000&&(a-1600)<5000) {
                        s=(a-1600)*.15;
                        printf ("s=%f",s);
        }
        if ((a-1600)>5000&&(a-1600)<=20000) {
                        s=(a-1600)*.20;
                        printf ("s=%f",s);
        }
        if ((a-1600)>20000&&(a-1600)<=40000) {
                        s=(a-1600)*.25;
                        printf("s=%f",s);
        }
        if ((a-1600)>40000&&(a-1600)<60000) {
                        s=(a-1600)*.30;
                        printf("s=%f",s);
        }
        if ((a-1600)>60000&&(a-1600)<=80000) {
                        s=(a-1600)*.35;
                        printf("s=%f",s);
        }
        if ((a-1600)>80000&&(a-1600)<100000) {
                        s=(a-1600)*.40;
                        printf("s=%f",s);
        }
        if ((a-1600)>100000){
                        s=(a-1600)*.45;
                        printf("s=%f",s);
        }
}

    return 0;

}


[ 本帖最后由 ansic 于 2011-3-8 23:19 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-08 23:16
回水
Rank: 2
来 自:广东湛江
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-3-3
收藏
得分:0 
又出事了,输入任意数字  都不用交税。。。。


#include <stdio.h>
int main (void){
    float a=0,s=0;
    printf ("请输入您月工资\n");
    scanf ("%d",&a);
    if (a<=1600){
       printf("不用交税");
}
    if ((a-1600)<=500){
       s=(a-1600)*(5/100);
       printf ("s=%d",s);
}
    if ((500<a-1600)&&(a-1600<=2000)){
       s=((a-1600)*(10/100));   
       printf ("所交的税:s=%d",s);
}
    if ((2000<a-1600)&&(a-1600<5000)){
       s=((a-1600)*(15/100));
       printf ("所交的税:s=%d",s);
}
    if ((5000<(a-1600))&&(a-1600<=20000)){
       s=((a-1600)*(20/100));
       printf ("所交的税:s=%d",s);
}
    if  ((20000<a-1600)&&(a-1600<=40000)){
       s=((a-1600)*(25/100));
       printf("所交的税:s=%d",s);
}
    if ((40000<a-1600)&&(a-1600<60000)){
       s=((a-1600)*(30/100));
       printf("所交的税:s=%d",s);
}
    if ((60000<a-1600)&&(a-1600<=80000)){
       s=((a-1600)*(35/100));
       printf("所交的税:s=%d",s);
}
    if ((80000<a-1600)&&(a-1600<100000)){
       s=((a-1600)*(40/100));
       printf("所交的税:s=%d",s);
}
    if (a-1600>10000){
       s=((a-1600)*(45/100));
       printf("所交的税:s=%d",s);
}
    return 0;
}
2011-03-08 23:16
回水
Rank: 2
来 自:广东湛江
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-3-3
收藏
得分:0 
回复 6楼 编程2011
一言惊醒梦中人,哥。。。
2011-03-08 23:18
mandown1991
Rank: 4
等 级:业余侠客
帖 子:262
专家分:252
注 册:2011-3-2
收藏
得分:0 
这是我写的代码,lz可以参考一下,若有错误,请指教!谢谢!
#include <stdio.h>
int main(void)
{
    double a=0,b=0;
    printf("请输入任何一个月的收入,系统将为您计算该月应交税金额:");
    scanf("%lf",&a);
    if(a<1600)
        printf("不用交税!");
    else
    {
        if((a-1600)<=500)
        {
            b=(a-1600)*5/100;
            printf("应交税额%lf\n",b);
        }
        else
        {
            if(((a-1600)>500)&&((a-1600)<=2000))
            {
                b=(a-1600)*10/100;
                printf("应交税额%lf\n",b);
            }
            else
                ;
            if(((a-1600)>2000)&&((a-1600)<=5000))
            {
                b=(a-1600)*15/100;
                printf("应交税额%lf\n",b);
            }
            else
                ;

            if(((a-1600)>5000)&&((a-1600)<=20000))
            {
                b=(a-1600)*20/100;
                printf("应交税额%lf\n",b);
            }
            else
                ;
            if(((a-1600)>20000)&&((a-1600)<=40000))
            {
                b=(a-1600)*25/100;
                printf("应交税额%lf\n",b);
            }
            else
                ;
            if(((a-1600)>40000)&&((a-1600)<=60000))
            {
                b=(a-1600)*30/100;
                printf("应交税额%lf\n",b);
            }
            else
                ;
            if(((a-1600)>60000)&&((a-1600)<=80000))
            {
                b=(a-1600)*35/100;
                printf("应交税额%lf\n",b);
            }
            else
                ;
            if(((a-1600)>80000)&&((a-1600)<=100000))
            {
                b=(a-1600)*40/100;
                printf("应交税额%lf\n",b);
            }
            else
                ;
            if((a-1600)>100000)
            {
                b=(a-1600)*45/100;
                printf("应交税额%lf\n",b);
            }
            else
                ;
        }
    }
    return 0;
}
2011-03-08 23:25
快速回复:《求助》大家看我的程序哪里出问题了。。
数据加载中...
 
   



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

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