c语言计算个人所得税

条件如下:

方法一

#include "stdio.h"  //for printf
#include "conio.h"  //for getch

void main()
{
    printf("Please input your salary\n");
    double salary;
    scanf("%lf", &salary);

    double tax;
    if(salary < 0)
        printf("input error!\n");
    else
    {
        if(salary<=5000)        //判断收入是否小于5000
        {
            tax = 0;
        }
        else if(salary>5000 && salary<=8000) 
        {
            tax = (salary-5000) *0.03;
        }
        else if(salary>8000 && salary<=17000)
        {
            tax = (salary-8000)*0.1 + 90;  //90即为8000的税
        }
        else if(salary>17000 && salary<=30000) 
        {
            tax = (salary-17000)*0.20 + 990;  //990即为17000的税
        }
        else if(salary>30000 && salary<=40000)
        {
            tax = (salary-30000)*0.25 + 3590;  //3590即为30000的税
        }
        else if(salary>40000 && salary<=60000)
        {
            tax = (salary-40000)*0.30 + 6090;  //6090即为40000的税
        }
        else if(salary>60000 && salary<=85000) 
        {
            tax = (salary-60000)*0.35 + 12090;  //12090即为60000的税
        }
        else                                 //其他>85000情况
        {
            tax = (salary-85000)*0.45 + 20840;  //20840即为85000的税
        }

        printf("%.2lf 's tax is %.2lf\n", salary, tax);
    }
    

    getch();  //暂停
}

方法二

利用函数调用(递归)

//利用函数调用(递归)
/
#include "stdio.h"  //for printf
#include "conio.h"  //for getch

double GetTax(double salary);

void main()
{
    printf("Please input your salaray\n");
    double salaray;
    scanf("%lf", &salaray);

    if(salaray < 0)
        printf("input error!\n");
    else
        printf("%.2lf 's tax is %.2lf\n", salaray, GetTax(salaray));
    

    getch();  //暂停
}


double GetTax(double salary)
{
    if(salary <= 5000) return 0;

    if(salary > 5000 && salary <= 8000)
        return (salary - 5000) * 0.03;
    else if(salary > 8000 && salary <= 17000)
        return GetTax(8000) + (salary - 8000) * 0.10;
    else if(salary > 17000 && salary <= 30000)
        return GetTax(17000) + (salary - 17000) * 0.20;
    else if(salary > 30000 && salary <= 40000)
        return GetTax(30000) + (salary - 30000) * 0.25;
    else if(salary > 40000 && salary <= 60000)
        return GetTax(40000) + (salary - 40000) * 0.30;
    else if(salary > 60000 && salary <= 85000)
        return GetTax(60000) + (salary - 60000) * 0.35;
    else
        return GetTax(85000) + (salary - 85000) * 0.45;

}

方法二中的代码没有进行注释,请读者对照方法一中的代码自己分析。

最后,希望我的分享对你有所帮助,敬请关注,持续更新!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小_扫地僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值