首页 > 其他分享 >个人所得税问题

个人所得税问题

时间:2023-04-22 21:26:06浏览次数:34  
标签:taxrate end profit double tax 问题 start 个人所得税

1.问题描述:

    编写一个计算个人所得税的程序,要求输入收入金额后能够输出应缴的个人所得税。个人所得税的征收办法如下

2.思路

   1.建立结构体 其中包含 start(起始税费),end(阶段最大税费),taxrate(税率);

   2.写出计算函数 tax += (p->end - p->start) * p->taxrate;(当个人所得税大于阶段税费最大值的时候)

     tax = (profit - p->start) * p->taxrate;(税率小于阶段税费最大值); 

#include<iostream>
#define taxbase 3500
using namespace std;
typedef struct
{
double start;
double end;
double taxrate;
}Tax;
Tax tax[] = { {0,1500,0.03},{1500,4500,0.10},{4500,9000,0.20},{9000,35000,0.25},{35000,55000,0.30},{55000,80000,0.35},{80000,1e10,0.45} };
double caculate(double profit) {
Tax* p;
double taxx = 0.0;
profit -= taxbase;
for (p = tax; p < tax + sizeof(tax) / sizeof(Tax); p++) {
if (profit > p->start) {
if (profit > p->end) {
taxx += (p->end - p->start) * p->taxrate;
}
else {
taxx += (profit - p->start) * p->taxrate;
}
profit -= p->end;
double num = (profit) > 0 ? profit : 0;
cout << "征税范围:" << p->start << "---" << p->end << " " << "该范围内交税金额:" << taxx << " " << "超出该范围金额:" << num;
cout << endl;
}
}
return taxx;
}
int main()
{
double profit;
double tax;
cout << "请输入个人收入金额:";
cin >> profit;
tax = caculate(profit);
cout << "您的个人所得税为:" << tax;
return 0;
}

 

标签:taxrate,end,profit,double,tax,问题,start,个人所得税
From: https://www.cnblogs.com/hbro/p/17343985.html

相关文章

  • apt-get update 出现E: Could not get lock /var/lib/apt/lists/lock问题的解决
    Ubuntu在更新软件源时,出现E:Couldnotgetlock/var/lib/apt/lists/lock问题查看哪些进程在占用资源ps-e|grepapt3231?00:00:00apt.systemd.dai3235?00:00:00apt.systemd.dai从以上的结果看到占用资源的的PID(进程号)是3231和3235,那么kill掉这两......
  • 【教程】在运行WeiPeiYang - Flutter项目时可能遇到的问题 (持续更新)
    在运行WeiPeiYang-Flutter项目时可能遇到的问题前言:本文目前的环境要求Flutter:2.8.0Dart:2.15.0保证从如下的地址克隆Q:打开项目之后发现没有Flutter的lib等文件夹确保在AndroidStudio内安装了Flutter插件,具体在File-Settings-Plugins内注意安装Flutter......
  • 【已解决】:java.sql.SQLException 问题
    本文目录一、Bug描述二、定位报错点三、解决方案四、注意事项及原理总结:写在后面的话一、Bug描述今天做项目开发的时候,发现了这个Bug,话不多说,直接定位Bug原理+解决!java.sql.SQLException:java.lang.RuntimeException:java.sql.SQLException:CannotissueexecuteUpdate()fo......
  • Loading class `com.mysql.jdbc.Driver'. 问题
     解决Loadingclass`com.mysql.jdbc.Driver'.Thisisdeprecated.Thenewdriverclassis`com.mysql.cj.jdbc.Driver'.ThedriverisautomaticallyregisteredviatheSPIandmanualloadingofthedriverclassisgenerallyunnecessary.警告问题错误提示:Loadi......
  • 最新解决chatgpt滥用问题
    写在前面:提示邮箱不可用,不能进入网页,提示滥用问题是因为代理不干净的原因,更换代理即可!注册sms-activate账号首先进去官网:传送门主页大概长这样进去之后点击右上角注册账号!这种操作比较简单通过QQ邮箱即可注册,这里有一点就是QQ邮箱可能会拦截该网站的验证信息:在验证过程中......
  • Ffmpeg分布式视频转码问题总结
    本文主要聊一聊云原生时代分布式转码系统实施过程中碰到的一些问题。聊问题之前简单介绍一下我们的分布式转码方案。云原生分布式转码在计算资源招之即来的云计算时代,正在重构着软件架构的方方面面。对软件架构师或者运维管理者影响比较大的一个点便是不需要在做容量规划,不需......
  • 继承中耦合性强的问题以及解决方案
    在面向对象编程中,继承是一个常用的特性,它可以让子类继承父类的属性和方法,并且可以在子类中进行扩展和重写。但是,继承也会带来一些问题,其中之一就是耦合性强导致的问题。本文将从耦合性强的定义、出现问题的原因和解决方案三个方面来讨论这个问题。耦合性强的定义在......
  • Mac中 ~/.bashrc 或 ~/.bash_profile 的问题 [转载]
    1.问题描述熟练使用Linux的人会知道,环境变量是在~/.bashrc或~/.bash_profile中进行配置的;在MacOS中,同样也可以在这两个文件中配置环境变量,但是每次打开命令行时都需要输入source~/.bashrc或source~/.bash_profile才能生效,无法自动生效。2.解决方案需要注意的一点是,与Linu......
  • node和sass版本不匹配问题
     解决办法:使用npminstall--legacy-peer-deps进行安装。比如下图: ......
  • VSCode + GCC编译器(MinGW)开发环境中文字符乱码问题踩坑与解决办法
    目录问题背景问题描述测试代码测试结果现象描述问题分析解决方案修改默认配置1.已经存在的文件全部使用gbk编码重新保存。2.在工程目录下新建.vscode目录,如果已存在则跳过此步骤。3.在.vscode目录中新建settings.json,launch.json两个文件,已有则跳过。4.settings.json文件添加......