周六加班,晚上睡不着觉,无聊逛逛百度知道,看见一个税务问题,想想自己当年也是看见了这个就纠结,直接去玩游戏了,这次好好写写,乐于助人嘛。
这个是税额要求:假设工资税金案以下方法计算:X<1000元不收取税金,1000<X<2000.收取5%的税金2000<X<3000,收取10%;3000<X4000,收取15%的税金;4000<X<5000,收取20%的税金;X><x,2000元收取5%的税金;2000<x<300,收取10%的税金;3000<x<4000,收取15%的税金;4000<x5000收取25%的税金。当然有防御性编程的东西在里面,最好加上菜单的选择和输入检测。
废话不说,直接贴代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
while(1)
{
float salary;
int choice;
int flag =1 ;
printf("请输入你的工资数目:\n");
scanf("%f",&salary);
printf("%.3f\n",salary);
//这里的flag做为工资输入的一个标记,如果输入不正确,就继续输入,直到正确的数值
while(flag)
{
if(salary < 0)
{
printf("工资输入错误,请重新输入:\n");
scanf("%f",&salary);
}
else
{
flag = 0;
}
}
//整数取千位数,做为case的参数刚刚好,当然还有好多奇妙的用法
choice = salary /1000;
switch(choice)
{
case 0:
{
printf("税额为0\n");
break;
}
case 1:
{
printf("税额为%.2f\n",(salary -1000) * 0.05);
break;
}
case 2:
{
printf("税额为%.2f\n",1000 *0.05 + (salary-2000)*0.1);
break;
}
case 3:
{
printf("税额为%.2f\n",1000 *(0.05+0.1) + (salary-3000)*0.15);
break;
}
case 4:
{
printf("税额为%.2f\n",1000 *(0.05+0.1+0.15) + (salary-4000)*0.25);
break;
}
default:
{
printf("税额为%.2f\n",1000 *(0.05+0.1+0.15) + (salary-4000)*0.25);
break;
}
}
}
system("PAUSE");
return 0;
}
这里贴下输出结果: