C++
文章平均质量分 51
laocooon523857886
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
给出一个数组,在数组中找到两个数,使得它们的和最接近目标值但不超过目标值,返回它们的和
摘要:本文实现了一个算法,在给定数组中找到两个数,使其和最接近但不超目标值。采用双指针法:先排序数组,初始化左右指针分别指向首尾元素。计算当前两数和,若等于目标值直接返回;若小于目标值则记录最大有效和并右移左指针;若大于目标值则左移右指针。时间复杂度为O(nlogn)(排序)+O(n)(双指针遍历),空间复杂度O(1)。示例输入[1,3,5,11,7]和目标值15时,输出最接近的合法和为14。原创 2026-01-05 01:37:13 · 1319 阅读 · 0 评论 -
从大一新生到C++面向对象编程专家:一份博士视角的深度学习指南
C++作为一门兼具底层控制能力和高级抽象特性的编程语言,在计算机科学领域占有独特地位。从操作系统内核到游戏引擎,从高频交易系统到科学计算,C++的广泛应用源于其独特的性能与抽象平衡。面向对象编程(OOP)范式在C++中的实现尤为丰富和复杂,不仅包含经典的封装、继承、多态三大特性,还涉及模板元编程、RAII、移动语义等现代特性。作为大一计算机专业学生,你正处于从计算思维到专业编程的关键过渡期。相较于Python、Java等更“友好”的语言,C++的学习曲线更为陡峭,但相应的认知收获也更为丰厚。掌握C++的OO原创 2025-12-18 12:05:09 · 932 阅读 · 0 评论 -
C语言系统学习指南:面向大一计算机专业新生
结构体基础定义与声明// 定义结构体类型int x;int y;// 声明结构体变量// 默认值(未初始化)// 初始化// 定义时声明变量int age;float gpa;// 使用typedef创建别名int pages;} Book;Book book1;// 不需要struct关键字访问结构体成员p.x = 15;// 直接访问// 读取成员值Book book;结构体操作结构体赋值p2 = p1;// 复制所有成员(浅拷贝)原创 2025-12-18 11:53:08 · 690 阅读 · 0 评论 -
C语言系统学习指南:面向大一计算机专业学生
我深知,C语言作为计算机科学领域的“基石”与“活化石”,不仅是后续学习数据结构、操作系统、编译原理等核心课程的先修钥匙,更是理解计算机底层运作逻辑的桥梁。初期可能会被其指针、内存管理等概念所困扰,感到挫败,但请相信,每一次的调试成功、每一个复杂程序的正确运行,都将带来无与伦比的成就感。它赋予你的不仅是解决当前问题的能力,更是一种深层的、通用的计算思维。重点:攻克指针,理解内存模型,这是C语言的灵魂所在。原创 2025-12-18 11:37:13 · 837 阅读 · 0 评论 -
C语言精通之路:大一新生的四年学习全景图
亲爱的新同学,C语言学习是一场马拉松,而非百米冲刺。这条路上会有挫折和困惑,但每一次调试成功的喜悦、每一个功能实现的成就感,都将成为你前进的动力。记住,每个优秀的程序员都曾是初学者。你今天遇到的困难,正是成长的机会。C语言不仅是一门编程语言,更是一种思维方式——严谨、高效、直面问题本质。从现在开始,从第一个“Hello World”开始,保持好奇心,坚持实践,享受编程的乐趣。四年后,当你回顾这段学习历程,你会发现,C语言不仅给了你技术的武器,更塑造了你解决问题的思维。这将是大学生涯中最有价值的投资之一。原创 2025-12-18 10:20:38 · 972 阅读 · 0 评论 -
写代码 调bug相关信息
本文系统介绍了编程调试的核心方法与技巧。主要内容包括:调试基本原则(科学方法、正确心态)、四步调试流程(复现→定位→修复→预防)、实用技巧(日志调试、断点调试、二分法、隔离测试)以及常见问题对策(空指针、异步、内存泄漏)。文章推荐了各类调试工具,强调预防性策略(可调试代码、单元测试、代码审查),并提供了调试思维训练方法。关键要点指出调试应优先理解问题、合理利用工具、保持怀疑态度,最终目标是提升代码质量和开发效率。原创 2025-12-17 10:30:40 · 517 阅读 · 0 评论 -
背包问题~~!C++
摘要:本文介绍了一个解决背包问题的递归算法。给定n件物品及其重量,找出若干件物品使其总重量等于目标值s。算法通过递归遍历所有可能的物品组合(取或不取),当找到满足条件的组合时记录结果。初始状态为空背包(重量0),每次递归处理一个物品,分别尝试放入和不放入背包两种情况。若找到解则输出所选物品的编号和重量,否则提示无解。代码实现了这一思路,通过check函数递归验证组合,print函数输出结果。示例输入5件物品(重量1-5)和目标值10,可能的解包括1234、145等组合。原创 2025-12-16 05:02:00 · 185 阅读 · 0 评论 -
叮当猫相关图片
这段Python代码使用turtle模块绘制了哆啦A梦的卡通形象。代码通过定义多个函数分别绘制头部、眼睛、胡须、嘴巴、围巾等部位,最终组合成完整的哆啦A梦图像。程序设置画布大小为1.0x1.0,背景色为天蓝色,绘制速度设为最快。完成绘制后,在右侧显示"永远爱你"的文字。该代码展示了如何使用Python的turtle模块进行复杂图形的绘制,通过组合基本绘图指令创建出精美的卡通形象。原创 2025-12-15 13:02:43 · 175 阅读 · 0 评论 -
20个大厂js面试题
以下是20个JavaScript大厂面试题的精选摘要(150字): 本文精选20道JavaScript大厂面试题,覆盖核心概念、异步、框架和算法等方向。核心概念包括事件循环机制、闭包应用与内存泄漏、this绑定规则及深拷贝实现;异步编程重点考察Promise调度器、内存管理和防抖节流;框架部分涉及虚拟DOM原理、React Hooks和Vue3响应式系统;算法设计包含对象扁平化、LRU缓存和深度比较等。题目注重原理深度(如手写EventLoop)、工程实践(如Webpack摇树优化)和系统设计能力(如任务调原创 2025-12-15 11:59:25 · 803 阅读 · 0 评论 -
C语言打印爱心
这段C语言代码通过数学方程绘制了一个由星号()和井号(#)组成的立体心形图案。程序使用心形参数方程(x²+y²-1)³-x²y³≤0判断每个点是否在心形范围内,并通过坐标缩放调整图形大小。内部区域用""填充,外围用"#"填充,形成层次分明的视觉效果。双重循环控制行列输出,最终呈现出一个精美的ASCII艺术心形。原创 2025-12-14 20:23:39 · 104 阅读 · 0 评论 -
关于在算法竞赛中用C++是否要用`new
摘要:在算法竞赛中使用C++时,建议避免使用new手动分配内存,主要原因包括内存管理负担、性能开销和易出错性。推荐优先使用STL容器(如vector)或预分配数组,它们更安全高效。仅在处理超大内存或特殊数据结构时才考虑new。总体而言,STL容器能满足99%的竞赛需求,让选手更专注于算法实现而非内存管理细节。原创 2025-12-12 06:16:01 · 660 阅读 · 0 评论 -
本科计算机专业,在毕业前应当掌握哪些专业的基础课,然后做哪些项目
本文为计算机专业学生提供系统性学习与项目实践建议。基础课程方面强调四大核心:编程语言(C++/Java/Python)、计算机系统(组成原理/操作系统)、数据结构与算法、网络与数据库。项目实践建议分三阶段:初期夯实基础(命令行工具),中期选择方向深入(Web/云计算/AI),后期参与开源或实习。贯穿始终的要点包括:掌握开发工具链、养成编码规范、构建知识体系、维护GitHub作品集。学习路径建议:大一大二打基础,大三做深度项目并准备实习,大四通过实践提升。整体强调"深度优于广度"的学习理念原创 2025-12-12 05:50:06 · 696 阅读 · 0 评论 -
通过C语言学习计算机底层逻辑
摘要:C语言是学习计算机底层逻辑的理想工具,因其可直接操作内存和硬件。学习路径包括:1) 理解内存布局(代码区、数据区、堆栈等);2) 通过指针探索内存,查看汇编代码;3) 实践项目如实现内存分配器、分析函数调用栈。建议使用GDB、objdump等工具,配合《深入理解计算机系统》等资源,从内存管理逐步深入到系统调用、并发编程等底层概念。这种系统化的学习方法能帮助深入理解数据表示、内存层次等计算机核心原理。原创 2025-12-12 05:29:33 · 430 阅读 · 0 评论 -
C语言链表的相关操作
本文实现了一个学生信息管理的单向链表系统。头文件定义了链表结构体(包含学号、姓名、成绩)和基本操作接口。源文件实现了创建/销毁链表、插入/删除/查找节点、判断空链表、获取链表长度等功能,并提供了两种格式的打印函数。测试程序演示了创建链表、添加3个学生节点、查找节点、删除节点及打印链表等操作。系统采用模块化设计,通过函数指针实现灵活的打印方式,内存管理严谨,包含错误处理机制。该链表实现可作为学生信息管理的基础数据结构。原创 2025-12-11 16:28:04 · 200 阅读 · 0 评论 -
C语言枚举知识详解与示例
C语言枚举(enum)是一种用户自定义数据类型,用于定义一组命名的整数常量。枚举支持自动递增(默认从0开始)或自定义值,可与结构体、函数结合使用,特别适合状态码、选项设置等场景。高级用法包括位标志枚举(通过位运算组合多个选项)、typedef简化声明以及与switch语句配合。枚举相比#define常量具有更好的类型安全性和调试友好性,是C语言中组织相关常量的有效方式。原创 2025-12-11 16:21:04 · 425 阅读 · 0 评论 -
字符串最大不重复子串
摘要: 本文介绍了一个用于演示"字符串最大不重复子串"滑动窗口算法的交互式网页工具。该工具包含左右两个面板,左侧提供字符串输入和操作控制,右侧显示算法可视化过程。用户可输入字符串后通过"单步执行"、"自动执行"或"重置"按钮观察滑动窗口算法的运行过程,界面中字符会以不同颜色标识当前处理字符和窗口范围。该演示工具采用响应式设计,支持不同设备访问,通过直观的可视化帮助理解滑动窗口算法原理。原创 2025-12-11 04:54:30 · 1223 阅读 · 0 评论 -
C++ 设计模式概述及常用模式
C++ 设计模式概述 本文介绍了C++中23种设计模式的分类及实现示例,主要分为三大类: 创建型模式(5个):单例模式(常用)、工厂方法模式(常用)、抽象工厂模式(常用)、建造者模式和原型模式。这些模式专注于对象的创建机制。 结构型模式(7个):适配器模式(常用)、桥接模式、组合模式和装饰器模式(常用)等。这些模式处理类和对象的组合方式。 行为型模式:未完整列出,但包含观察者模式等(未展示完整代码)。 文章通过简洁的C++代码示例展示了常用设计模式的实现方法,如单例模式通过私有构造函数和静态方法确保唯一实例原创 2025-12-10 20:15:02 · 1017 阅读 · 0 评论 -
C语言,少了&为什么报 SegmentationFault
摘要:本文分析了C语言中常见的scanf指针使用错误。当使用scanf("%d", a)时,由于缺少&导致传递的是变量值而非地址,若变量未初始化则会产生随机垃圾地址,进而引发段错误(Segmentation Fault)。正确写法应为scanf("%d", &a)。文章通过错误/正确代码对比说明问题,并指出字符串输入(char[])不需要&的特殊情况。最后给出调试建议:开启编译器警告、使用地址消毒剂等工具,强调养成检查scanf参数的习惯。核心原创 2025-12-04 14:45:44 · 319 阅读 · 0 评论 -
一个C项目实现框架
该程序实现了一个基于C语言的画布绘图系统,主要功能包括:1) 绘制直线(水平线、垂直线和对角线);2) 矩形区域填充;3) 复制粘贴画布区域;4) 画布显示和初始化。系统支持两种画笔类型(单像素和9像素模板画笔),提供5种灰度等级,并包含坐标规范化、边界检查等辅助功能。程序通过二维数组表示20x36的画布,包含调试模式和操作帮助信息,实现了基本的绘图操作功能。原创 2025-12-03 02:54:24 · 177 阅读 · 0 评论 -
李白打酒 C++
摘要:本文探讨了李白打酒问题的解法,通过编程计算李白在5次遇店和10次遇花(最后一次为花)时,所有可能的酒量变化顺序。使用二进制位表示遇店(a)和遇花(b),遍历所有组合并验证是否符合条件。最终程序输出所有满足条件的序列数量,其中题目给出的"babaabbabbabbbb"就是一个有效解。该问题考察了组合数学和编程实现能力。原创 2025-12-02 01:46:01 · 131 阅读 · 0 评论 -
实现了一个菱形图案的打印功能
该代码实现了一个菱形图案的打印功能。上半部分shang_bufen函数通过控制空格和星号数量打印递增的星号行,形成菱形的上半部;下半部分xia_bufen函数打印递减的星号行完成下半部。主函数调用这两个函数,以n=27为参数打印完整的菱形。整个程序通过循环控制实现了对称的星号图案输出,展示了基本的图形打印算法。原创 2025-11-21 20:14:27 · 59 阅读 · 0 评论 -
100条信息,如何显示vue3实现
该代码实现了一个账号密码管理器界面,主要功能包括:1) 显示100条模拟账号数据(用户名+密码);2) 支持密码显示/隐藏切换功能;3) 采用分页展示,每页10条记录;4) 提供上一页/下一页导航按钮。界面采用响应式设计,包含账号列表、密码字段和分页控件,密码默认隐藏且可切换显示状态。使用Vue 3的Composition API实现数据管理和计算属性,并通过scoped CSS确保样式隔离。原创 2025-11-20 13:34:29 · 240 阅读 · 0 评论 -
吹泡泡的小鱼
摘要:本文实现了一个字符串处理函数,能够根据特定规则转换输入字符串。当遇到"o"和"O"时,采用类似栈的操作:连续两个"o"转换成"O";两个"O"相互抵消;其他情况则入栈。示例输入"ooOOoooO"处理后输出空字符串。该算法通过遍历字符串并维护状态栈,高效实现了字符转换和抵消逻辑。原创 2025-11-18 19:23:31 · 191 阅读 · 0 评论 -
在SecureCRT或FinalShell中按下 `Ctrl + s` 后
在SecureCRT或FinalShell中按下Ctrl + s会导致终端看似"冻结",这是源于传统终端的XOFF功能,用于暂停输出。要恢复只需按Ctrl + q(XON)即可。这个设计是为了兼容老式终端的数据流控制机制。如需禁用该功能,可在会话设置中关闭VT100/XOFF流控制选项。了解这个机制后,就能避免误以为是系统卡死的困扰。原创 2025-11-10 17:50:22 · 355 阅读 · 0 评论 -
一个大数加法程序C 语言。
这段代码实现了一个大数加法程序,能够处理最多300位的数字相加。主要功能包括:1) 接收两个字符串形式的大整数输入;2) 通过reverse()函数将数字字符串倒置;3) 使用big_add()函数逐位相加并处理进位;4) 将结果再次倒置后输出。程序采用数组存储数字,支持不同长度的数字相加,通过字符处理实现大数运算,解决了普通整型变量无法处理超长数字的问题。原创 2025-11-09 21:06:42 · 184 阅读 · 0 评论 -
C++ 图片加背景音乐的处理
本文实现了一个基于Windows MCI接口的音乐管理系统,提供了背景音乐的播放控制功能。系统通过music_manager.h头文件定义了5个核心功能:播放音乐(playBackgroundMusic)、暂停(pauseBackgroundMusic)、恢复(resumeBackgroundMusic)、停止(stopBackgroundMusic)和关闭所有音乐(closeAllMusic)。实现部分music_manager.cpp利用MCI命令字符串与Windows多媒体系统交互,支持音量调节(0-原创 2025-11-08 21:00:03 · 256 阅读 · 0 评论 -
大数的阶乘 C语言
该程序实现了一个大数阶乘计算功能。通过数组存储大数,从低位到高位依次计算,处理进位问题。主程序测试了1、5和150的阶乘结果。核心函数fun()实现大数乘法,fun1()循环计算阶乘,printArr()输出结果。程序使用固定大小数组(102400位)存储计算结果,适用于大数运算,能正确输出1!、5!和150!的值。原创 2025-11-08 16:59:43 · 283 阅读 · 0 评论 -
洛谷P1739
该程序使用栈结构判断字符串中的括号是否匹配。用户输入以'@'结尾的字符串,程序检查其中的'('和')'是否成对出现且顺序正确。若括号匹配则输出"YES",否则输出"NO"。程序通过维护一个栈来实现:遇到'('入栈,遇到')'出栈。若处理完字符串后栈为空则括号匹配。该实现简洁高效,时间复杂度为O(n)。原创 2025-11-01 11:17:46 · 150 阅读 · 0 评论 -
p1015.cpp 洛谷平台
该程序实现了一个判断数字字符串是否为回文的功能。主要包含字符串处理、进制转换和加法运算等操作。程序首先读取一个进制数n和字符串a,然后通过反复反转字符串并进行指定进制的加法运算,判断能否在30步内使字符串变成回文。若成功则输出步骤数,否则输出"Impossible!"。核心函数包括字符串反转reverse()、加法运算add()和进制转换ctoi()。程序通过循环比较原始字符串与反转字符串,实现了回文数的判定过程。原创 2025-11-01 10:52:13 · 196 阅读 · 0 评论 -
b2143进制转换.cpp
这段C语言代码实现了一个将十进制数转换为任意进制(2-16)的递归打印功能。程序定义了一个字符数组k存储数字字符,函数nprint递归地将输入整数x转换为指定进制m并打印结果。main函数调用nprint将31转换为16进制(结果为1F)。核心功能是通过递归取余和整除操作完成进制转换,利用字符数组实现数字到字符的映射。原创 2025-11-01 09:46:26 · 112 阅读 · 0 评论 -
C语言 有关指针,都要学哪些内容
本文系统梳理了C语言指针的学习路径,分为四个阶段:基础概念、核心数据结构应用、高级概念以及常见问题总结。重点内容包括指针定义与操作(取址、解引用)、指针与数组/字符串/函数的结合、多级指针、动态内存分配和函数指针等。特别强调了内存图辅助理解、循序渐进的学习方法,并指出了野指针、内存泄漏等常见错误及防范措施。通过掌握这些内容,学习者能够深入理解C语言指针机制,提升编程能力。原创 2025-10-31 11:11:34 · 934 阅读 · 0 评论 -
一个蛇形填充n×n矩阵的算法
该程序实现了一个蛇形填充n×n矩阵的算法。通过定义方向变量d(0表示右上,2表示左下),交替进行对角线填充:当向右上方超出边界时转向左下方,反之亦然。填充从a[0][0]=1开始,依次递增至n²。最后通过printArr函数输出填充完成的矩阵。核心逻辑是通过判断边界条件动态调整填充方向,实现蛇形走位填充二维数组。该算法时间复杂度为O(n²),空间复杂度为O(n²)。原创 2025-10-30 23:56:21 · 241 阅读 · 0 评论 -
打印对称的X。
该代码实现了一个菱形图案的绘制程序。程序通过三个函数分工合作:fun()控制整体流程,fun1()生成图案的每一行(处理左右对称的点星排列),fun2()负责输出图案(分上下半部分对称输出)。用户输入m(星号数量)和n(总宽度)后,程序会先构建上半部分图案数据,再利用对称原理生成下半部分,最终输出完整的菱形图案。其中数学计算确保图案对称性,M常量限制最大处理尺寸为100。原创 2025-10-30 23:28:11 · 179 阅读 · 0 评论 -
寻找使a×b=c成立的最小进制数(2-16进制)
该程序用于寻找使a×b=c成立的最小进制数(2-16进制)。主函数读取3个整数a,b,c,调用getNumSys函数进行计算。该函数从2进制开始尝试,使用ito10函数将a,b,c转换为10进制数,检查a×b是否等于c。ito10函数实现进制转换并验证数字是否合法。若找到满足条件的进制则返回,否则返回0。程序输出所求进制数或0表示无解。原创 2025-10-30 12:06:56 · 386 阅读 · 0 评论 -
运行当前位置,显示文件全名,检查是否扩展名多次重叠
该程序是一个文件列表和扩展名检查工具,主要功能包括: 列出当前目录下所有文件(跳过"."和".."目录),区分显示文件和目录 检查系统是否隐藏文件扩展名,并给出Windows系统下显示扩展名的设置提示 当文件名不含点号时提醒用户扩展名可能被隐藏 程序通过标准C库函数实现目录遍历和文件信息获取,最后提示用户按任意键退出。原创 2025-10-30 11:09:00 · 254 阅读 · 0 评论 -
这段C语言代码实现的是道路树木统计问题,具体来说
这段C语言代码解决道路树木统计问题,通过两种方法计算施工后剩余树木数量。初始方法使用数组标记清除区域,时间复杂度为O(L×M)。优化方案采用差分数组技术,通过记录区间变化量来高效统计结果,复杂度降为O(L+M)。程序适用于城市绿化管理等线性区间覆盖问题,演示了算法优化对性能的提升效果。差分数组方法通过避免重复遍历区间,显著提高了大规模数据处理的效率。原创 2025-10-28 16:35:07 · 102 阅读 · 0 评论 -
sin函数打印图形
这段C语言代码实现了一个正弦函数(sin)的可视化输出。程序通过计算0°到330°之间每隔15°的正弦值,并以星号(*)表示其幅度变化。正半轴和负半轴分别采用不同的对齐方式:正半轴从右侧开始绘制,负半轴则从左侧开始。输出结果呈现了正弦函数从0°开始的一个完整周期(0-360°)的波形特征,包括波峰、波谷和过零点。该程序使用了数学库中的sin函数,并将角度值转换为弧度进行计算,最后通过控制台字符输出来实现简单的图形化展示。原创 2025-10-25 15:40:14 · 172 阅读 · 0 评论 -
一个适合新手的训练C题
这段C语言代码实现了一个商品价格计算程序。程序根据用户输入的A、B、C三种商品数量(格式为"A数量B数量C数量"),分别计算商品总价、快递费和最终总金额。其中:1) 商品A单价19元,B单价17元,C单价12元,购买多件有95折优惠(C商品为59折);2) 总金额超过50元减免4元;3) 快递费按每3件6元计算,不足3件按6元计。最终输出格式化的商品价格、快递费和总金额(保留两位小数)。原创 2025-10-22 23:10:15 · 471 阅读 · 0 评论 -
一个非常好的算法训练题
这段C++代码实现了一个数字配对求和的算法。程序首先将输入的正数和负数分别存储在两个vector中,并将正数从大到小排序,负数从小到大排序。然后通过遍历配对相邻元素,分别计算正数和负数的和。最后处理可能的剩余单个正数和负数配对,仅当两者之和为正数时才计入总和。最终输出所有符合条件的配对数字之和。该算法通过排序优化配对策略,确保获得最大的可能总和。原创 2025-10-22 21:32:43 · 242 阅读 · 0 评论 -
贪吃蛇游戏C语言教程系列
本教程介绍了使用C语言和EasyX图形库实现贪吃蛇游戏的基本方法。主要内容包括:1)程序结构和头文件配置;2)游戏初始化设置;3)蛇的移动逻辑和碰撞检测;4)图形绘制和颜色处理;5)游戏循环和键盘输入控制。教程通过二维数组存储蛇身状态,数值表示蛇身位置,并实现了蛇的移动、吃食物、碰撞检测等功能。游戏使用WASD控制方向,蛇身会随长度增加而变色,碰到边界或自身则游戏结束。该实现展示了基本的游戏开发思路和图形编程技巧。原创 2025-10-21 09:22:42 · 404 阅读 · 0 评论
分享