11【C语言 & 趣味算法】个人所得税问题(结构体应用):结构体的声明、定义结构体类型的三种方法等

简介: 11【C语言 & 趣味算法】个人所得税问题(结构体应用):结构体的声明、定义结构体类型的三种方法等

一、Review



10(可回看)【C语言&趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)

09【C语言&趣味算法】再识:折半查找(二分查找)︰基本思想、程序流程图及完整代码、附:顺序查找

08【C语言&趣味算法】再识:冒泡排序(问题分析、算法设计与分析、程序流程图以及完整代码)

07【C语言&趣味算法】最佳存款方案(采用从后往前递推解决)

06【c语言&趣味算法】牛顿迭代法求方程根(可回看)

05【C语言&趣味算法】经典:兔子产子问题(即:Fibonacci数列)

04【C语言&趣味算法】“抓交通肇事犯"问题。算法改进:设置"标识变量”,有效减少循环次数。

03【C语言&趣味算法】(值得品味的一道题)打鱼还是晒网?结构体的简单应用。函数的应用。判断闰年的应用。求指定日期距1990年1月1日的天数。

02【C语言&趣味算法】借书方案问题:小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能借1本,则可以有多少种不同的借法?

01【C语言&趣味算法】百钱百鸡问题(问题简单,非初学者请忽略叭)。请注意算法的设计((程序的框架),程序流程图的绘制,算法的优化。


二、New Problem: Personal income tax issues(个人所得税问题)



2.1 Description of the problem

7ef01343652e4db18e30cbcfd8334a41.jpg


2.2Analysis of the problem


2.2.1声明(定义)结构体

96997b6569354959a4d07a8a509a52fc.jpg


2.2.2定义结构体类型的变量:3种方法

6632f920134e485dbd9a7786795fdd04.jpg


2.2.3结构体变量的引用、结构体数组的定义与初始化

8120b74652604851af333b783c17829f.jpg


2.2.4使用typedef来定义类型

36106791876243ea9b32e4909af96615.jpg


2.3 Algorithm design


ae696294edd54692858f197051633975.jpg


2.4 Defining the framework of the process(确定程序框架)

a8516b6438984bdbba28f8bc57af69ad.jpg6d8963fc86b44fa6b1920e62a626d8f2.jpg


2.5 Full code and output


//趣味11:个人所得税问题  
#include <stdio.h>
#define TAXBASE  2000
/*定义结构体*/
typedef struct{ 
  long start; 
  long end; 
  double taxrate;
}TAXTABLE;
TAXTABLE TaxTable[]={{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 CaculateTax(long profit)
{ 
  int i;  
  double tax=0.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("start%d:%6ld end%d:%6ld  Tax:%12.2f Leave:%6ld\n",i,TaxTable[i].start,i,TaxTable[i].end,tax,(profit)>0 ? profit:0);
      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 = CaculateTax(profit);  
  printf("您的个人所得税为: %12.2f\n",tax);
}

在Dev-C++运行上述程序后:可能会报警告如下,

2d43663c7ed94042b5d774bebb10e631.jpg

翻译一下,其意思是:

简单来讲,这个错误即:常量转换溢出。C语言中char,int,float,double,unsigned char,

unsigned int 等数值有极限范围,当它们之间(隐式)转换时,可能因数值极限而超界溢出。有的编译器会报告这—类型的错误,并不是所有编译器都会报告。


8a8af12b5c5c429eb3ac7e32439d48f1.jpg


这里应该是无伤大雅的叭!

来看几个测试:

9b2540b48475418abb468acc3d72aa94.jpg2e82670c111c47929ad5cc84e740785e.jpg5711944bc43443fb9c48f1df3c5e3cb8.jpgfcfddfcf19714ccd8b68963f97cc4395.jpg


2.6 Question expansion:使用指针指向结构体变量和结构体数组

cbcb841407f647d18160468093e855fb.jpg5615226a8ad7497f935b961b979c8490.jpg

相关文章
|
6月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
263 0
|
5月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
339 3
|
5月前
|
机器学习/深度学习 资源调度 算法
遗传算法模型深度解析与实战应用
摘要 遗传算法(GA)作为一种受生物进化启发的优化算法,在复杂问题求解中展现出独特优势。本文系统介绍了GA的核心理论、实现细节和应用经验。算法通过模拟自然选择机制,利用选择、交叉、变异三大操作在解空间中进行全局搜索。与梯度下降等传统方法相比,GA不依赖目标函数的连续性或可微性,特别适合处理离散优化、多目标优化等复杂问题。文中详细阐述了染色体编码、适应度函数设计、遗传操作实现等关键技术,并提供了Python代码实现示例。实践表明,GA的成功应用关键在于平衡探索与开发,通过精心调参维持种群多样性同时确保收敛效率
|
5月前
|
机器学习/深度学习 边缘计算 人工智能
粒子群算法模型深度解析与实战应用
蒋星熠Jaxonic是一位深耕智能优化算法领域多年的技术探索者,专注于粒子群优化(PSO)算法的研究与应用。他深入剖析了PSO的数学模型、核心公式及实现方法,并通过大量实践验证了其在神经网络优化、工程设计等复杂问题上的卓越性能。本文全面展示了PSO的理论基础、改进策略与前沿发展方向,为读者提供了一份详尽的技术指南。
粒子群算法模型深度解析与实战应用
|
5月前
|
机器学习/深度学习 算法 安全
小场景大市场:猫狗识别算法在宠物智能设备中的应用
将猫狗识别算法应用于宠物智能设备,是AIoT领域的重要垂直场景。本文从核心技术、应用场景、挑战与趋势四个方面,全面解析这一融合算法、硬件与用户体验的系统工程。
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习模型、算法与应用的全方位解析
深度学习,作为人工智能(AI)的一个重要分支,已经在多个领域产生了革命性的影响。从图像识别到自然语言处理,从语音识别到自动驾驶,深度学习无处不在。本篇博客将深入探讨深度学习的模型、算法及其在各个领域的应用。
1453 3
|
7月前
|
机器学习/深度学习 人工智能 算法
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
AI-Compass 强化学习模块:理论到实战完整RL技术生态,涵盖10+主流框架、多智能体算法、游戏AI与金融量化应用
|
7月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
344 1
|
6月前
|
算法 数据可视化
matlab版本粒子群算法(PSO)在路径规划中的应用
matlab版本粒子群算法(PSO)在路径规划中的应用
|
7月前
|
存储 监控 算法
公司员工泄密防护体系中跳表数据结构及其 Go 语言算法的应用研究
在数字化办公中,企业面临员工泄密风险。本文探讨使用跳表(Skip List)数据结构优化泄密防护系统,提升敏感数据监测效率。跳表以其高效的动态数据处理能力,为企业信息安全管理提供了可靠技术支持。
167 0