个人所得税问题

发布时间 2023-04-25 19:34:51作者: 千恒

 

分析:设计一个结构体,;里面陈放结构体的征税起点,征税终点,征税率。定义一个结构体数组,将各个范围的征税格式存入该数组。定义一个函数calculate来计算个人所得税

#include<stdio.h>
#define taxbase 3500
/*定义结构体*/
typedef struct
{
long start;
long end;
double taxrate;
}taxtable;
/*定义结构体数组*/
taxtable TAXtable[]={{0,1500,0.03},{1500,4500,0.1},{4500,9000,0.2},{9000,35000,0.25},{35000,55000,0.3},{55000,80000,0.35},{80000,999999,0.45}};
double calculatetax(long profit)
{
int i;
double tax=0;
profit-=taxbase;//超过个税起征点的收入
for(i=0;i<sizeof(TAXtable)/sizeof(taxtable);i++)
{
if(profit>TAXtable[i].start)
{
if(profit>TAXtable[i].end)
{
tax+=(TAXtable[i].end-TAXtable[i].start)*TAXtable[i].taxrate;
}
else
{
tax+=(profit-TAXtable[i].start)*TAXtable[i].taxrate;
}
profit-=TAXtable[i].end;
printf("征税范围:%6ld_%6ld 该范围内缴纳税金额:%6.2f 超出该范围的金额:%6ld\n",TAXtable[i].start,TAXtable[i].end,tax,(profit)>0 ? profit:0);
}
}
return tax;
}
int main()
{

long profit;
double tax;
printf("请输入个人收入:");
scanf("%ld",&profit);
tax=calculatetax(profit);
printf("您的个人所的税:%12.2f\n",tax);

 


return 0;
}