个税计算问题中同一区间输出整型和float型同时存在

问题遇到的现象和发生背景

个税计算问题。根据国家的纳税政策,个人应税起征点为月收入5000元;应纳税所得额=应税月收入- 5000元(起征点)。
应纳税所得额不超过3000元的,按3%交纳个人所得税;超过3000至12000元的,超过部分按10%交纳个人所得税;超过12000至25000元的,超过部分按20%交纳个人所得税。超过25000元的,暂时不做税收处理,输出“暂时无法计算税额!”。编写一个程序,输入某人的应税月收入,计算并输出纳税额及纳税后的实际收入。
如何输出这个整型和float型同时存在

img

用代码块功能插入代码,请勿粘贴截图

#include<stdio.h>
int main()
{
double x,y,z;
printf("请输入应税月收入:");
scanf("%lf",&x);
y=x-5000;
if(y<0&&y>-5000)
{
printf("缴纳税额为:0\n纳税后实际收入为:%.0lf\n",x);
}
else
{
if(y<-5000)
{
printf("输入数据有误");
}
else
{
if(y<=3000)
{
z=x-y*0.03;
printf("缴纳税额为:%.0lf\n纳税后实际收入为:%.0lf\n",y*0.03,z);
}
else
{
if(y<=12000)
{
z=x-y*0.1;
printf("纳税额为:%.2lf\n纳税后实际输入为:%.2lf\n",y*0.1,z);
}
else
{
if(y<=25000)
{
z=x-y*0.2;
printf("纳税额为:%.2lf\n纳税后实际输入为:%.2lf\n",y*0.2,z);
}
else
{
if(y>25000)
{
printf("暂时无法计算税额\n");
}

                }
            }
        }
    }
}
return 0;

}

运行结果及报错内容

img

我想要达到的结果

img

你没发现,你的代码在逻辑上还没走通吗?什么叫做“超过部分”??

#include <stdio.h>

int main()
{
    double x, y, z, k;
    printf("请输入应税月收入:");
    scanf("%lf", &x);
    y = x - 5000;
    if (y < 0 && y > -5000)
    {
        printf("缴纳税额为:0\n纳税后实际收入为:%.0lf\n",x);
    }
    else
    {
        if (y < -5000)
        {
            printf("输入数据有误");    
        }
        else
        {
            if (y <= 3000)
            {
                k = y * 0.03;
                z = x - k;
                printf("缴纳税额为:%.0lf\n纳税后实际收入为:%.0lf\n", k, z);
            }
            else if (y <= 12000)
            {
                k = 3000 * 0.03 + (y - 3000) * 0.1;
                z = x - k;
                printf("纳税额为:%.2lf\n纳税后实际输入为:%.2lf\n", k, z);
            }else if (y <= 25000)
            {
                k = 3000 * 0.03 + 9000 * 0.1 + (y - 12000) * 0.2;
                z = x - k;
                printf("纳税额为:%.2lf\n纳税后实际输入为:%.2lf\n", k, z);
            }else
            {
                printf("暂时无法计算税额\n");
            }
        }
    }
    return 0;
}