个税计算问题。根据国家的纳税政策,个人应税起征点为月收入5000元;应纳税所得额=应税月收入- 5000元(起征点)。
应纳税所得额不超过3000元的,按3%交纳个人所得税;超过3000至12000元的,超过部分按10%交纳个人所得税;超过12000至25000元的,超过部分按20%交纳个人所得税。超过25000元的,暂时不做税收处理,输出“暂时无法计算税额!”。编写一个程序,输入某人的应税月收入,计算并输出纳税额及纳税后的实际收入。
如何输出这个整型和float型同时存在
#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;
}
你没发现,你的代码在逻辑上还没走通吗?什么叫做“超过部分”??
#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;
}