自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言-冒泡排序

本文介绍了两种排序方法:经典冒泡排序和使用qsort函数排序结构数据。第一部分展示了冒泡排序的实现原理和优化版本,通过双重循环比较相邻元素并交换位置。第二部分重点演示了如何使用qsort函数对结构体数组进行排序,包括按名字和年龄排序的两种比较函数实现。文中还提供了自定义的bubble_sort函数,模拟qsort功能,支持泛型数据排序。代码示例详细展示了如何调用这些排序函数对整型数组和结构体数组进行排序。

2026-02-24 10:17:11 6

原创 C语言-指针终阶

本文介绍了C语言中指针的高级应用,包括数组指针、函数指针及其实际应用。主要内容:1)数组指针的定义与使用,展示如何通过数组指针访问二维数组;2)函数指针的概念,演示如何声明和使用函数指针调用函数;3)函数指针的实际应用案例,实现了一个基于函数指针的计算器程序;4)更复杂的指针类型,包括函数指针数组和指向函数指针数组的指针。通过这些示例,展示了指针在C语言中的强大功能和灵活性,特别是在处理数组和函数时的应用优势。

2026-02-24 10:00:32 147

原创 C语言-数据存储

本文摘要:本文包含8个C语言编程练习,主要涉及指针操作、数据存储和数组处理等内容。1)通过整型变量判断机器字节序;2)整型存储练习,分析有符号和无符号整型的存储差异;3)浮点数存储原理分析;4)实现将数组中的奇数移到前半部分;5)有序数组合并算法;6)字符指针与指针数组比较;7)使用指针数组模拟二维数组;8)分析数组名的地址特性。这些练习涵盖了C语言中指针、数据类型和数组操作等核心概念,对理解底层存储机制和指针应用具有重要意义。

2026-02-24 08:26:35 106

原创 C语言-编程实例2

本文汇总了12个C语言编程题目及解答,涵盖指针操作、数学计算、字符串处理等常见题型。主要内容包括:1)三角形类型判断;2)指针类型转换与计算;3)使用指针遍历数组;4)字符串逆序;5)数列求和;6)水仙花数查找;7)菱形图案打印;8)指针数组与数组指针区别;9)汽水兑换问题;10)指针运算优先级;11)最小公倍数计算;12)句子单词逆序。每个题目都提供了完整的代码实现,涉及指针操作、循环控制、条件判断等核心编程技巧,适合C语言学习者练习和参考。

2026-02-23 10:49:46 328

原创 C语言-编程实例

本文摘要:该文档展示了9个C语言编程实例,涵盖了表达式求值、位操作、变量作用域和字符串处理等核心概念。主要内容包括:1) 表达式求值示例演示了自增运算符和逗号表达式的使用;2) 三种计算二进制中1的个数的方法,重点介绍了高效的n&(n-1)技巧;3) 比较两个整数二进制位差异的两种实现;4) 打印二进制数的奇偶位;5) 全局/局部变量默认值差异;6) 打印X型图案的算法;7) 计算月份天数的实现;8) 模拟strcpy函数的逐步优化过程;9) const修饰指针的两种用法区别。这些示例展示了C语言中

2026-02-23 10:37:50 115

原创 C语言-结构体进阶

本文介绍了C语言中结构体的基本使用方法。主要内容包括:1.结构体的声明方式;2.结构体变量的定义与初始化;3.结构体成员的访问方法(使用"."运算符访问成员变量,使用"->"运算符通过指针访问);4.结构体作为函数参数的传递方式(推荐传递指针以提高性能)。示例代码展示了结构体的定义、初始化、成员访问以及嵌套结构体的使用方法,并比较了直接传递结构体和传递结构体指针两种参数传递方式的差异。

2026-02-23 10:24:32 14

原创 C语言-指针进阶

本文系统介绍了C语言指针的核心概念与应用。主要内容包括:1)指针本质是存放地址的变量;2)指针大小在32位/64位平台分别为4/8字节;3)指针类型决定访问字节数(如int*访问4字节);4)野指针的三种成因及防范;5)指针运算(加减整数、指针相减计算元素个数);6)指针与数组的关系及相互访问方式;7)二级指针的概念;8)指针数组的定义与使用;9)用指针数组模拟二维数组的实现。通过代码示例详细演示了指针的各种操作技巧和典型应用场景。

2026-02-22 09:32:41 364

原创 C语言-操作符练习

本文摘要: 本文包含8个C语言编程练习题目及实现代码:1)表达式求值中的整型提升机制;2)小乐乐走台阶问题的递归解法;3)序列中删除指定数字的数组操作;4)计算最高分与最低分之差;5)字母大小写转换的两种实现;6)判断字符是否为字母;7)三个数中求最高分;8)水仙花数的判断。每个题目都提供了完整的代码实现和关键思路说明,涉及数据类型转换、递归、数组操作、字符处理等基础编程技巧。

2026-02-22 09:19:07 144

原创 C语言-操作符进阶

本文总结了C语言中位运算和结构体的使用技巧。主要内容包括:1)通过异或运算实现变量交换;2)按位取反运算符(~)的使用;3)按位与(&)和按位或(|)的应用;4)sizeof运算符的用法;5)逻辑运算符(&&,||)的特性;6)数组引用符[]的底层原理;7)结构体成员访问的两种方式(.和->)。重点展示了位运算的实用技巧,如变量交换、位操作,以及结构体的定义和操作方法。这些知识点对理解C语言底层操作和数据结构有重要意义。

2026-02-22 09:10:49 23

原创 C语言-数组应用:扫雷

本文介绍了一个基于C语言实现的扫雷游戏程序。程序采用模块化设计,分为main.c(游戏逻辑测试)、game.c(游戏功能实现)和game.h(函数声明)三个文件。主要功能包括:1)使用二维数组存储雷区和显示区;2)实现游戏初始化、雷区设置、棋盘显示和排雷功能;3)通过随机数生成雷的位置;4)提供游戏菜单和用户交互界面。程序采用9×9的游戏区域,默认布置10个雷,通过计算周围雷数实现扫雷核心逻辑,并包含胜负判断机制。代码结构清晰,体现了数组在游戏开发中的典型应用。

2026-02-21 12:12:43 235

原创 C语言-数组练习

本文总结了7个C语言编程练习:1)字符串逆序的三种实现方法(循环、递归、多参数递归);2)递归计算数字各位之和;3)递归实现n的k次方运算;4)逗号表达式应用;5)sizeof与strlen的区别;6)交换两个数组内容;7)数组操作函数集(初始化、打印、逆置)。每个练习都提供了完整的代码实现,涵盖了字符串处理、递归算法、数组操作等基础编程技巧,适合C语言初学者学习实践。

2026-02-21 11:18:42 312

原创 C语言-数组应用:三子棋

本文介绍了使用C语言实现三子棋游戏的代码结构。程序分为三个文件:main.c负责游戏逻辑测试,game.c实现游戏功能,game.h声明函数和符号。主要功能包括:初始化棋盘、打印棋盘界面、玩家与电脑轮流下棋、胜负判断等。玩家使用"*"标记,电脑使用"#"标记,通过判断行、列、对角线是否连成一线来决定胜负,支持平局判断。程序采用模块化设计,通过随机数实现电脑自动下棋,并提供了友好的用户交互界面。

2026-02-21 11:01:10 17

原创 C语言-数组

本文系统介绍了C语言中数组的使用方法,包括一维数组和二维数组的声明、初始化、访问及内存存储特点。主要内容涵盖:1)一维数组的完全/不完全初始化及元素访问;2)数组在内存中的连续存储特性;3)二维数组的行列初始化规则及遍历方法;4)数组作为函数参数传递的两种形式;5)数组名的特殊含义及sizeof运算特性;6)通过实例演示了冒泡排序算法的实现。特别强调数组名在大多数情况下表示首元素地址,但在sizeof和取地址操作时例外。

2026-02-20 12:41:28 76

原创 C语言-函数递归练习

本文展示了多个C语言编程实例:1) 三个整数的降序排列(使用交换函数);2) 打印1-100中3的倍数;3) 求最大公约数(辗转相除法);4) 统计1-100中数字9出现的次数;5) 计算1/1-1/2+...+1/99-1/100的值;6) 找出10个整数中的最大值;7) 打印9×9乘法表;8) 自定义行列数的乘法表函数;9) 返回多个值的三种方法(数组、指针、全局变量)。这些示例涵盖了基本算法、循环控制和函数参数传递等核心编程概念。

2026-02-20 12:29:51 98

原创 C语言-函数递归

摘要:本文介绍了C语言中的几种递归和迭代实现方法。1)分别用循环和递归实现无符号整数的逐位打印;2)两种字符串长度计算方法,包括使用临时变量的常规方法和递归方法;3)递归和循环两种方式实现阶乘计算;4)斐波那契数列的递归实现及优化后的非递归解法,避免了递归带来的重复计算问题。这些示例展示了递归和迭代在不同场景下的应用与优劣比较,特别是递归可能导致栈溢出或重复计算的问题。

2026-02-20 12:20:59 146

原创 C语言-函数练习2

本文展示了6个C语言编程实例:1)打印1000-2000年间的闰年,使用两种方法实现闰年判断;2)封装闰年判断为函数is_leap_year;3)实现有序数组的二分查找函数binary_search;4)编写两种方式实现数值递增函数Add;5)演示函数链式访问特性;6)介绍函数声明与定义分离的工程化方法,通过头文件add.h声明函数,在add.c中实现定义。这些案例涵盖了C语言函数的基本用法、参数传递、返回值处理及工程化组织代码等核心概念。

2026-02-19 14:36:43 45

原创 C语言-函数练习

本文摘要:本文展示了C语言中几个关键编程技巧的应用实例。1)使用goto语句实现循环和条件跳转;2)演示memset函数对字符串的批量修改;3)定义求最大值函数并调用;4)通过指针实现变量交换;5-6)两种方法实现素数判断;7)指针变量的直接和间接修改。这些示例涵盖了流程控制、字符串处理、函数定义、指针操作等核心编程概念,展示了C语言的灵活性和底层控制能力。

2026-02-19 14:23:40 31

原创 C语言-分支与循环语句练习2

本文展示了6个C语言编程实例:1)计算n的阶乘;2)计算1!到10!的阶乘和;3)在有序数组中查找数字(线性查找和二分查找);4)实现字符从两端向中间汇聚的动画效果;5)模拟用户登录(3次尝试限制);6)猜数字游戏(生成随机数并判断猜测结果)。这些示例涵盖了循环、数组、字符串处理、随机数生成等基本编程概念,展示了C语言在算法实现和简单交互程序中的应用。

2026-02-19 14:03:08 42

原创 C语言-分支与循环语句练习

本文摘要:包含8个C语言编程实例:(1)将ASCII码数组转换为字符输出;(2)格式化输入输出出生日期;(3)学生成绩输入输出;(4)测试printf返回值;(5)两种方法求四个数最大值;(6)计算球体体积(注意浮点精度);(7)计算BMI指数;(8)分析for循环执行次数(条件为赋值语句时循环不执行)。这些示例涵盖了基础输入输出、数组处理、条件判断、浮点运算等核心编程概念。

2026-02-18 22:24:48 240

原创 C语言-while循环,continue/break,getchar()/putchar()

摘要:本文展示了C语言中while循环内continue和break的区别,以及getchar()/putchar()的使用方法。break会永久终止循环,而continue仅跳过当前循环剩余部分。代码示例演示了如何用continue跳过特定条件(如i==5)的循环。第二部分介绍了字符输入输出函数,包括处理EOF和使用getchar()过滤非数字字符的实用技巧,如密码输入确认和数字筛选功能。

2026-02-18 20:41:11 44

原创 C语言-if/else,switch/case

摘要:本文展示了C语言中条件判断结构的三种实现方式。1) if/else语句示例,根据年龄范围输出不同阶段;2) 演示else就近原则,说明else与最近if的匹配关系;3) switch/case语句示例,包括基本用法、case合并及嵌套使用。重点说明了break关键字的作用和switch语句的整型表达式要求。代码示例涵盖了条件判断的主要应用场景和注意事项。

2026-02-18 19:52:11 205

原创 C语言-指针,结构体

本文包含两个C语言代码示例:指针操作和结构体使用。指针部分演示了如何获取变量地址、指针变量声明与解引用操作,并说明指针大小在32位和64位系统中的差异。结构体部分展示了结构体定义、初始化及访问成员的方法,包括通过结构体变量和指针两种方式访问成员。两个示例都包含了基本的输入输出操作,展示了C语言中内存地址操作和复合数据类型的基本用法。

2026-02-17 17:16:00 40

原创 C语言-static关键词,寄存器变量,define宏定义

本文介绍了C语言中static关键字的三种用法:修饰局部变量时使变量生命周期延长;修饰全局变量和函数时限制其作用域仅限当前文件。此外还介绍了寄存器变量和宏定义的使用:register建议编译器将变量存储在寄存器中;#define可定义常量和带参数的宏。这些特性可用于优化程序性能和实现代码封装。

2026-02-17 15:40:39 54

原创 C语言-操作符

本文展示了C语言中几种常用运算符的使用方法:1) 除法和取模运算,说明整数除法与浮点除法的区别;2) sizeof运算符计算数据类型和数组大小;3) 前置++和后置++的区别;4) 强制类型转换和三目运算符的应用;5) 逗号表达式的执行顺序和返回值。通过代码示例演示了这些运算符的具体用法和输出结果,帮助理解其运算规则。

2026-02-17 14:46:58 33

原创 C语言-初始化赋值,函数,变量的作用域与生命周期

本文展示了C语言编程的三个基础示例:1)初始化赋值示例,演示了变量初始化和简单条件判断;2)函数定义与调用示例,展示如何创建和调用返回两个数之和的函数;3)变量作用域与生命周期示例,说明局部变量和全局变量的作用范围差异,以及extern关键字的使用。这些示例涵盖了C语言的基本语法、函数编写和变量作用域等核心概念。

2026-02-16 20:07:31 35

原创 C语言-变量,枚举常量,字符串,打印类型,转义字符

本文介绍了C语言中的几种常量类型:1.字面常量;2.const修饰的常变量;3.#define定义的标识符常量。同时讲解了枚举常量、字符串处理及相关注意事项,包括字符串结束标志'\0'的重要性。此外还介绍了常用打印格式说明符和转义字符的使用方法,如'、"、\ddd(八进制)和\xdd(十六进制)等转义字符的应用场景。最后通过实例演示了strlen函数在处理包含转义字符的字符串时的计算方法。

2026-02-16 19:48:48 40

原创 OpenCV学习(83)

特征检测与匹配(5):ORB特征提取一,ORB算法概述;二,相关概念认知;三,ORB类相关源码简单分析;四,示例程序:ORB算法描述与匹配;一,ORB算法概述二,相关概念认知三,ORB类相关源码简单分析四,示例程序:ORB算法描述与匹配...

2022-03-24 20:22:33 3929

原创 OpenCV学习(82)

特征检测与匹配(4):寻找已知物体一,寻找透视变换:findHomography()函数;二,进行透视矩阵变换:perspectiveTransform()函数;三,示例程序:寻找已知物体;一,寻找透视变换:findHomography()函数二,进行透视矩阵变换:perspectiveTransform()函数三,示例程序:寻找已知物体...

2022-03-23 19:56:03 5586

原创 OpenCV学习(81)

特征检测与匹配(3):使用FLANN进行特征点匹配一,FlannBasedMatcher类的简单分析;二,找到最佳匹配:DescriptorMatcher::match方法;三,示例程序:使用FLANN进行特征点匹配;四,综合示例程序:FLANN结合SURF进行关键点的描述和匹配;五,综合示例程序:SIFT配合暴力匹配进行关键点描述和提取;一,FlannBasedMatcher类的简单分析二,找到最佳匹配:DescriptorMatcher::match方法三,示例程序:使用

2022-03-22 19:34:21 4671

原创 OpenCV学习(80)

特征检测与匹配(2):SURF特征提取一,绘制匹配点:drawMatches()函数;二,BruteForceMatcher类源码分析;三,示例程序:SURF特征提取;一,绘制匹配点:drawMatches()函数二,BruteForceMatcher类源码分析三,示例程序:SURF特征提取...

2022-03-21 20:07:18 1868

原创 OpenCV学习(79)

特征检测与匹配(1):SURF特征点检测一,SURF算法概览;二,SURF算法原理;三,SURF类相关OpenCV源码剖析;四,绘制关键点:drawKeypoints()函数;五,KeyPoint类;六,示例程序:SURF特征点检测;一,SURF算法概览SURF,英文全称为SpeededUp Robust Features,直译为“加速版的具有鲁棒性的特征“算法,由Bay在2006年首次提出。SURF是尺度不变特征变换算法(SIFT算法)的加速版。一般来说,标准的SURF

2022-03-20 16:55:37 1151

原创 OpenCV学习(78)

绝点检测(3):亚像素级角点检测一,背景概述;二,寻找亚像素角点: cornerSubPix()函数;三,综合示例:亚像素级角点检测;一,背景概述 若我们进行图像处理的目的不是提取用于识别的特征点而是进行几何测量,这通常需要更高的精度,而函数 goodFeaturesToTrack()只能提供简单的像素的坐标值,也就是说,有时候会需要实数坐标值而不是整数坐标值。 亚像素级角点检测的位置在摄像机标定、跟踪并重建摄像机的轨迹,或者重建被跟踪目标的三维结构时,是一...

2022-03-17 20:57:08 2157

原创 OpenCV学习(77)

绝点检测(2):Shi一Tomasi角点检测一,Shi-Tomasi角点检测概述;二,确定图像强角点:goodFeaturesToTrackO函数;三,综合示例:Shi-Tomasi角点检测;一,Shi-Tomasi角点检测概述二,确定图像强角点:goodFeaturesToTrackO函数三,综合示例:Shi-Tomasi角点检测...

2022-03-17 20:21:29 1407

原创 OpenCV学习(76)

绝点检测(1):Harris角点检测一,兴趣点与角点;二,角点检测;三,harris角点检测;四,实现Harris角点检测: cornerHarris()函数;五,综合示例: harris角点检测与绘制;一,兴趣点与角点 在图像处理和与计算机视觉领域,兴趣点(interest points),也被称作关键点(key points)、特征点(feature points)。它被大量用于解决物体识别、图像识别、图像匹配、视觉跟踪、三维重建等一系列的问题。我们不再观察整...

2022-03-16 16:45:26 2013

原创 OpenCV学习(75)

直方图与匹配(4):模板匹配一,模板匹配的概念与原理;二,实现模板匹配:matchTemplate()函数;三,综合示例:模板匹配;一,模板匹配的概念与原理二,实现模板匹配:matchTemplate()函数三,综合示例:模板匹配...

2022-03-16 16:25:12 529

原创 OpenCV学习(74)

直方图与匹配(3):反向投影一,引言;二,反向投影的工作原理;三,反向投影的作用;四,反向投影的结果;五,计算反向投影:calcBackProject()函数;六,通道复制:mixChannels()函数;七,综合程序:反向投影;一,引言 如果一幅图像的区域中显示的是一种结构纹理或者一个独特的物体,那么这个区域的直方图可以看作一个概率函数,其表现形式是某个像素属于该纹理或物体的概率。 而反向投影(back projection)就是一种记...

2022-03-15 19:37:24 1951

原创 OpenCV学习(73)

直方图与匹配(2):直方图对比一,直方图对比概要;二,对比直方图: compareHist()函数;三,示例程序:直方图对比;一,直方图对比概要二,对比直方图: compareHist()函数三,示例程序:直方图对比...

2022-03-15 17:01:45 945

原创 OpenCV学习(72)

直方图与匹配(1):一,图像直方图概述;二,直方图的计算与绘制①计算直方图:calcHist()函数;②找寻最值:minMaxLoc()函数;③示例程序:绘制H——S直方图;④示例程序:计算并绘制图像一维直方图;⑤示例程序:绘制RGB三色直方图;一,图像直方图概述; 直方图广泛运用于很多计算机视觉运用当中,通过标记帧与帧之间显著的边缘和颜色的统计发化,不0田以l确定图像中的兴趣点。边缘、色彩、用度等且特征的直方图所构成“标签”,用以确定图像中的兴趣点。边缘、色...

2022-03-12 19:26:00 1991

原创 OpenCV学习(71)

图像轮廓与图像分隔修复(9):图像修补一,图像修补的概念认知;二,实现图像修补:inpaint()函数;三,综合示例程序:图像修补;一,图像修补的概念认知 在实际应用中,我们的图像常常会被噪声腐蚀,这些噪声或者是镜头上的灰尘或水滴,或者是旧照片的划痕,或者由于图像的部分本身已经损坏。而“图像修复”( Inpainting),就是妙手回春,解决这些问题的良方。图像修复技术简单来说,就是利用那些已经被破坏区域的边缘,即边缘的颜色和结构,繁殖和混合到损坏的图像中,以达到图像修补的目...

2022-03-12 18:42:43 1951

原创 OpenCV学习(70)

图像轮廓与图像分隔修复(8):分水岭算法一,分水岭算法的认知;二,实现分水岭算法: watershed()函数;三,综合示例程序:分水岭算法;一,分水岭算法的认知 在许多实际运用中,我们需要分割图像,但无法从背景图像中获得有用信息。分水岭算法 ( watershed algorithm)在这方面往往是非常有效的。此算法可以将图像中的边缘转化成“山脉”,将均匀区域转化为“山谷”,这样有助于分割目标。 分水岭算法,是一种基于拓扑理论的数学形态学的分割方法,其...

2022-03-11 18:02:07 132

空空如也

空空如也

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

TA关注的人

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