自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(232)
  • 收藏
  • 关注

原创 分治法-真假硬币区分

这段代码实现了通过分治法在一组硬币中找出假币(重量不同)的下标。主要逻辑是:若只剩两枚硬币,直接比较返回较轻者;对于偶数个硬币,将数组分为两部分比较总重量,递归处理较重部分;对于奇数个硬币,先排除中间元素后比较两侧总重量,若不等则递归处理较重部分,若相等则中间元素为假币。示例中数组{1,2,2,2,2}的输出结果为假币下标0(首元素1较轻)。该算法通过不断缩小查找范围高效定位假币,时间复杂度为O(log n)。

2026-06-10 19:43:48 183

原创 贪心算法-背包问题

该程序实现了贪心算法解决分数背包问题。首先定义了5种物品的价值和重量数组,计算单位重量价值后通过归并排序按单位价值降序排列。然后采用贪心策略选择物品:优先装单位价值高的物品直到无法完整装入,最后对剩余容量按比例装入部分物品。程序输出排序前后的物品信息、最大总价值(65.0)以及解方案数组([1.0,1.0,0.0,0.0,0.8])。关键步骤包括归并排序实现和贪心选择策略,最终在背包容量100的限制下求得最优解。

2026-06-05 16:27:09 430

原创 动态规划-0-1背包问题

本文实现了一个经典的0-1背包问题动态规划解法。程序定义了4个物品(N=4)和背包容量5(M=5),每个物品有对应的重量W和价值v。通过构建二维数组f[N+1][M+1]来存储子问题的最优解,采用双重循环计算每个子问题的解:若不选当前物品则直接继承上一行解;若背包容量足够则比较选/不选当前物品的价值,取较大者。最终输出背包能装的最大价值7,并打印出完整的动态规划表格。该算法时间复杂度为O(NM),空间复杂度为O(NM)。

2026-06-04 16:50:37 23

原创 回溯法-N皇后

本文展示了N皇后问题的两种解法:非递归和递归方法。非递归解法使用回溯算法,通过循环和栈模拟递归过程,当检测到冲突时回溯调整皇后位置,找到所有合法解后输出。递归解法同样基于回溯思想,通过递归调用尝试每行的可能位置,利用check函数验证位置合法性,最终输出所有解。两种方法都通过q数组记录每行皇后的列位置,使用abs(i-j)==abs(q[i]-q[j])判断对角线冲突,体现了典型的回溯算法思想,其中非递归方法通过显式控制回溯步骤,递归方法则更简洁直观。

2026-06-02 17:10:02 175

原创 分治法-归并排序

本文展示了一个C语言实现的归并排序算法。代码包含三个主要函数:MergeSort用于递归分割数组,Merge用于合并两个有序子数组。在Merge函数中,通过创建临时数组L和R存储子数组元素,并引入INT_MAX作为哨兵值确保合并过程正确。主函数演示了对数组{4,2,6,1,7,8}的排序过程,最终输出有序序列。该实现体现了分治策略的核心思想:分解、解决和合并,时间复杂度为O(nlogn)。

2026-06-02 16:18:00 164

原创 分治法—最大子段问题

时间复杂度为:O(nlogn)

2026-06-02 15:49:53 49

原创 程序的异常处理(四个常用的)

处理用户输入非数字的情况(如输入数字的编程题)

2026-03-05 18:54:51 179

原创 「基类指针 / 引用指向派生类对象」实现多态的完整示例

【代码】「基类指针 / 引用指向派生类对象」实现多态的完整示例。

2026-03-03 20:18:06 122

原创 对一个二进制文件进行读写操作

【代码】对一个二进制文件进行读写操作。

2026-03-02 10:44:51 297

原创 C++二进制读写(ifstream,ofstream,write函数,read函数)

【代码】C++二进制读写(ifstream,ofstream,write函数,read函数)

2026-03-01 11:53:43 151

原创 ifstream和ofstream分别是什么

它们都继承自基础的类,遵循 C++ 流操作的统一规则,是处理文件最常用的工具。使用这两个类前,必须包含头文件:2. ofstream(写文件)示例用于创建 / 打开文件并写入内容,常见模式:3. ifstream(读文件)示例(逐行读,getline)用于打开文件并读取内容,常见读取方式:逐行读、逐个字符读、按类型读。 是输入文件流,核心作用是从文件读取数据,常用操作:打开文件、逐行读、按类型读、关闭文件。 是输出文件流,核心作用是向文件写入数据,常用操作:打开文件(可

2026-02-28 14:35:25 418

原创 双模板参数类的定义与成员函数体外实现(类模板)

【代码】双模板参数类的定义与成员函数体外实现(类模板)

2026-02-27 22:13:18 328

原创 已知一模板的不完整声明是:template<class T,int SIZE> T valueOf(T sq[ ][SIZE]):其中valueOf计算并返回SIZExSIZE的行列式sq的值。

【代码】已知一模板的不完整声明是:template<class T,int SIZE> T valueOf(T sq[ ][SIZE]):其中valueOf计算并返回SIZExSIZE的行列式sq的值。

2026-02-27 21:38:20 230

原创 已知一模板的不完整声明是:

2026-02-27 21:17:19 332

原创 写一个函数模板,其功能是计算并返回数组d中size个元素的平方和,试设计这个函数模板

【代码】写一个函数模板,其功能是计算并返回数组d中size个元素的平方和,试设计这个函数模板。

2026-02-27 17:56:11 409

原创 设计函数模板SWAP,它可以用来交换任意两个类型相同对象变量的值

摘要:本文展示了一个使用C++模板实现的通用交换函数SWAP。该函数通过模板参数T支持任意数据类型的交换操作,包括int、float和char等。程序通过三个测试案例验证了函数的通用性,分别交换了整数、浮点数和字符类型变量,并输出交换前后的值以验证结果。代码结构清晰,包含必要的注释说明,展示了模板函数在实现类型无关操作时的优势。

2026-02-27 17:32:06 258

原创 核心匹配规则:普通函数,模板函数(隐式),模板函数(显式),以及模板特化

C++函数调用优先级规则解析:普通函数优先级高于模板函数,显式模板参数强制调用模板版本。当调用MAX(a,b)时优先匹配普通函数,而MAX<float>(a,b)则强制调用模板实例化。使用模板特化可统一逻辑,避免普通函数与模板的匹配混淆。核心在于理解普通函数>隐式模板>显式模板的调用顺序,这是C++重载解析的重要规则。

2026-02-27 15:10:36 511

原创 类通用模板与类的部分特化和全特化模板

类模板特化分为通用版和全特化版:通用模板通过template<typename T>定义,适配所有未特化的类型;全特化版通过template<>标记,针对特定类型(如float)定制实现。实例化时,编译器优先匹配特化版本,未找到则使用通用模板。特化版可完全独立修改成员函数和构造方法,但必须与通用模板参数匹配。示例中Array<int>调用通用模板,而Array<float>调用特化版本,体现"特化版>通用版"的优先级原则。

2026-02-27 15:10:15 699

原创 函数模板也可以重载

【代码】函数模板也可以重载。

2026-02-26 11:21:25 282

原创 函数模板与类模板

【代码】函数模板与类模板。

2026-02-26 10:49:02 107

原创 设计并实现日期类Date,它至少包含下列特性:

本文实现了一个Date类,主要功能包括:1)支持默认日期(1949.10.1)和指定日期初始化;2)支持从输入流读取日期(格式为"年.月.日");3)支持日期输出;4)实现日期比较运算符(==, !=, <, <=, >, >=);5)支持日期增减操作(++, --, +=, -=);6)支持日期与天数相加减运算(+,-)。类中还包含日期合法性校验、闰年判断等功能,并通过调整函数处理跨月跨年的日期计算。main函数演示了各类功能的使用方法。

2026-02-23 12:39:03 260

原创 重载关系运算符“>“(二元,用bool operator>)

=<===!

2026-02-13 00:20:51 106

原创 重载复合赋值运算符‘‘+=“(二元)

【代码】重载复合赋值运算符‘‘+=“(二元)

2026-02-13 00:06:35 193

原创 重载赋值运算符“=“(只能使用成员函数,不可友元)

【代码】重载赋值运算符“=“(只能使用成员函数,不可友元)

2026-02-12 22:42:34 81

原创 重载类型转换符“long”(只能成员函数,不可友元函数)

【代码】重载类型转换符“long”(只能成员函数,不可友元函数)

2026-02-12 22:09:31 103

原创 重载增量运算符++(一元) 友元+成员,“--”也是如此

【代码】重载增量运算符++(一元) 友元+成员,“--”也是如此。

2026-02-12 21:46:45 134

原创 重载取负运算符“-“(一元)的友元函数与成员函数调用

【代码】重载取负运算符“-“的友元函数与成员函数调用。

2026-02-12 20:41:42 127

原创 重载下标访问运算符[]

【代码】重载下标访问运算符[]

2026-02-11 15:50:19 94

原创 流运算符重载

【代码】流运算符重载。

2026-02-11 14:30:48 128

原创 “+”加运算符重载(二元)(1.友元函数重载 2.成员函数重载)减法也如此

【代码】运算符重载(1.友元函数重载 2.成员函数重载)

2026-02-08 14:03:39 108

原创 大学有这样几类人员:学生、教师、职员和在职读书的教师。给出这几类人员的类描述。

本文展示了一个C++类层次结构的设计实现,包含Person基类和多个派生类。基类Person封装了人员基本信息(年龄、姓名、身份),并定义了虚函数show()以支持多态。派生类Student、Teacher、Employee和TeacherWithStudy分别扩展了学历、教学科目、工作单位等特有属性,并重写show()方法展示完整信息。代码优化包括:1) 使用英文命名提高可读性;2) 字符串默认值设为空字符串;3) 添加override关键字明确虚函数重写;4) 增加参数合法性检查。main函数通过基类指

2026-02-05 14:21:39 119

原创 建立普通的基类Building,用来存储一座楼房的层数、房间数以及它的总平方米数。建立派生类House,继承Building,并存储下面的内容:卧室与浴室的数量。另外,建立派生类Office,继承Bu

该代码实现了一个建筑类的继承体系,包含基类Builing和两个派生类House(住宅)和Office(办公室)。Builing类包含层数、房间数和总面积属性,并提供数据验证和显示功能。House类新增卧室和浴室数量,Office类新增灭火器和电话数量,两者都重写了show()方法以显示各自特有属性。主函数通过基类指针调用虚函数show(),实现多态性输出不同建筑类型的完整信息。程序展示了面向对象的封装、继承和多态特性。

2026-02-05 13:49:13 407

原创 编写一个程序输入一个n×n的矩阵,求出两条对角线的元素值之和

该程序实现了一个计算n×n二维矩阵两条对角线元素之和的功能。首先动态分配内存创建n×n矩阵,然后通过用户输入填充矩阵元素。程序分别计算正对角线(mat[i][i])和反对角线(mat[n-1-j][j])的元素和,最后输出两者之和。该代码展示了动态内存分配、二维数组操作和基本算法实现。

2025-12-11 09:27:22 144

原创 雪景艺术绘制

这段代码使用Python的turtle模块绘制了一个冬季雪景图。程序首先绘制100个随机分布、不同颜色和大小的雪花图案,每个雪花由8-12个花瓣组成。接着绘制地面效果,用随机大小和深浅的灰色线条模拟积雪。整个场景以黑色为背景,通过随机坐标和颜色变化创造出自然的视觉效果。代码利用了turtle的绘图功能和随机数生成,最终呈现出一个生动的数字雪景画面。

2025-11-19 17:12:29 141

原创 体育竞技分析实例

该程序模拟两个选手A和B的竞技比赛,通过输入各自能力值(0-1之间)和比赛场次进行胜负分析。程序包含两种实现方式:第一种使用概率比值计算得分概率,第二种直接使用能力值作为获胜概率。改进版本增加了比赛结束条件(需领先2分以上)和百分比显示功能。主要函数包括单场比赛模拟(sinOneGame)、多场模拟(sinNGame)和结果输出(printWin)。程序最终会输出选手的胜场数和获胜比例。

2025-11-13 11:52:14 167

原创 编写一个程序,读取一个Python源代码文件,将文件中所有除保留字外的小写字母换成大写字母,生成后的文件要能够被Python解释器正确执行。

本文介绍了一个Python脚本功能,该脚本能够读取输入文件中的代码,识别并转换其中的关键字。程序首先读取文件内容,然后使用keyword.kwlist检测Python关键字,将非关键字的标识符转换为大写形式。通过示例演示了转换效果:保留关键字(如def、return)原样输出,而将非关键字(如hello、message)转为大写。最后将处理结果写入输出文件,并展示了转换前后的代码对比。该功能可用于代码格式化或语法分析场景。

2025-11-12 18:21:27 348

原创 编写一个程序,生成一个10x10的随机矩阵并保存为文件(空格分隔行向量、换行分隔列向量),再写程序将刚才保存的矩阵文件另存为CSV格式,用Excel或文本编辑器打开看看结果对不对。

本文演示了如何生成随机矩阵并转换文件格式。首先使用Python随机模块生成10×10的0-99随机整数矩阵,保存为空格分隔的txt文件。随后将txt文件转换为逗号分隔的CSV格式。代码实现了两种矩阵存储格式的转换,可作为数据处理的基础示例。

2025-11-12 16:12:17 171

原创 假设有一个英文文本文件,编写一个程序读取其内容并将里面的大写字母变成小写字母,小写字母变成大写字母。

这段Python代码演示了如何读取并处理文本文件中的英文字符大小写转换。程序首先打开"new_b.txt"文件,读取内容后遍历每个字符:将小写字母转为大写,大写字母转为小写,其他字符保持不变。最后将所有处理后的字符重新组合成字符串并输出。代码使用了文件上下文管理(with语句)确保资源释放,以及列表推导式进行高效的字符处理,实现了对英文字符的大小写互换功能。

2025-11-12 15:10:47 188

原创 输入一个文件和一个字符,统计该字符在文件中出现的次数。

这段Python代码实现了一个简单的字符统计功能。程序首先提示用户输入文件名和要统计的字符,然后读取文件内容并计算指定字符出现的次数。代码使用了try-except块来处理文件不存在等异常情况,并提供了两种统计方法:直接使用count()函数或通过循环逐个字符比较。最后程序会输出统计结果或错误信息。该脚本适用于快速统计文本文件中特定字符的出现频率。

2025-11-12 14:46:22 134

原创 重复元素判定。编写一个函数,接收列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和输出测试结果的程序。

本文展示了一个检测列表中重复元素的Python程序。通过定义text_set()函数,利用集合(set)特性判断列表是否存在重复元素,同时保留原列表不变。测试用例包含数字和字符串列表,分别输出检测结果和原列表完整性验证。程序运行后会打印每个测试列表的重复检测结果,并确认原列表未被修改。该实现简洁高效,时间复杂度为O(n),适用于各种类型元素的列表检测。

2025-11-10 22:42:50 173

in.txt的初始化内容

in.txt的文本内容,读者需自行下载后放在跟当前源文件代码同目录下

2024-09-10

方法2的需要访问文本文件然后修改后放在out.txt文本文件的资源

方法2的需要访问文本文件然后修改后放在out.txt文本文件的资源

2024-09-10

数据结构病毒感染测试-(C语言版+BF匹配算法)

这是第二种病毒感染测试代码的一个输入的文本文件

2024-09-08

《C语言程序设计》课后习题答案(第四版)谭浩强

《C语言程序设计》课后习题答案(第四版)谭浩强 (完整版)

2024-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除