本题目要求读入一人全年工资收入,计算其一年所需纳税额(税率见下图),保留两位小数。
注意:每月有5000元免税额。注意速算扣除率是简化了题目求解难度,在减去5000的12个月的免税之后,还要直接减去的税。
本题小贴士:一是对于互斥的分支选择,最好加else,这样系统执行更快,否则第一个if执行完了,一定会再多判断一次第二个if是否能满足。二是别忘了输出税为0的分支。三是简单分支写在前,复杂分支写在后,可读性强。 三是这里的5000免税,每个分支都有,因此不要计算7次,而是在第一个分支之前就把5000*12的免税部分减去,减轻代码的冗余量,减少出错率。另外别忘了把速算扣除数给用上。
输入格式:
输入一年工资数(实数型)。
输出格式:
输出其一年工资和应纳税额(保留两位小数)。
答案
#include<stdio.h>
int main()
{
double gz,sjgz,ms,ss;
int kc1=2520,kc2=16920,kc3=31920,kc4=52920,kc5=85920,kc6=181920;
ms=5000*12;
scanf("%lf",&gz);
sjgz=gz-ms;
if(sjgz<0)
{
ss=0;
}
else if(sjgz<=36000)
{
ss=sjgz*0.03;
}
else if(sjgz<=144000)
{
ss=sjgz*0.1-kc1;
}
else if(sjgz<=300000)
{
ss=sjgz*0.2-kc2;
}
else if(sjgz<=420000)
{
ss=sjgz*0.25-kc3;
}
else if(sjgz<=660000)
{
ss=sjgz*0.3-kc4;
}
else if(sjgz<=960000)
{
ss=sjgz*0.35-kc5;
}
else
{
ss=sjgz*0.45-kc6;
}
printf("salary=%.2lf,tax=%.2lf",gz,ss);
return 0;
}