自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 问答 (1)
  • 收藏
  • 关注

原创 Little Kernel代码学习笔记

LK代码 start.S分析

2023-08-25 12:06:03 299

原创 KMP算法详细解释,带你理解k=next[k](逐代码分析)

文章目录前言一、BF解法二、使用步骤1.引入库2.读入数据总结前言给定一个主字符串T以及一个模式字符串P,判断P是不是T的字串,如果是则返回P在T中第一个元素的位置,如果不是返回-1。例如给定主字符串:aaaaaabc,模式串aaabc,显然,P是T的字串,返回3主串 aaaaaabc,模式串bcd,P不是T的字串返回-1。一、BF解法对于这个问题,我们最容易想到的就是BF解法我们以T:abcababccbaa,P:abcc为例分析。先看一个动图:蓝色表示比配成功,红色表示匹配失败#

2021-06-12 11:18:33 3639 41

原创 扫雷游戏(C语言实现)初级版和优化版(增加了自动展开、标记地雷功能,同时排除了第一次排到地雷的情况)

文章目录一、初级版扫雷1.1 游戏功能1.2 设计思路二、优化版扫雷总结一、初级版扫雷1.1 游戏功能初级版只具备最基础的两个功能:1、显示当前输入坐标周围雷的数目2、排雷错误,则游戏结束3、当排除所有的非雷区域后,取得胜利1.2 设计思路我们以9*9的格子(我们称为棋盘)为例。首先,我们需要两个数组,其中一个用来布置地雷的位置(这个数组不对玩家显示),另一个用来显示排雷的信息。假设我们现在要统计坐标(1,1)和(3,4)周围雷的数目,坐标(3,4)需要统计周围8个位置是否有雷,坐.

2021-04-30 15:22:37 2766 18

原创 C语言实现简单的三子棋

目录前言一、设计思路菜单棋盘的实现游戏开始判断输赢二、游戏代码头文件游戏菜单游戏开始初始化和打印棋盘:玩家下棋电脑下棋判断输赢三、代码改进后记前言井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。本文我们使用C语言来实现这个小游戏。一、设计思路菜单在生活中,我们所玩的每一款游

2021-04-24 11:12:52 1099 11

原创 汉诺塔问题解析(C语言)

文章目录背景一、汉诺塔和递归二、代码实现总结背景汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。(源自百度百科)一、汉诺塔和递归当我们想将64个圆盘从A柱移动到C柱上,我们可以将其分为三个步骤:步骤1、通过一种符合要求的方式将A柱上

2021-04-18 16:59:20 12986 18

原创 指针,数组指针,指针数组,函数指针解析

文章目录前言一、指针是什么?1.1内存和地址1.2 * 运算符和 &运算符1.3创建指针变量1.4int* p的解释二、数组指针指针数组2.1 数组指针和指针数组的理解2.2 数组指针和指针数组的定义方式2.3 代码分析三、函数指针3.1 函数指针的概念3.2 函数指针的定义3.3 函数指针的使用四、套娃4.1套娃开始4.2 套娃解释4.3 疯狂疯狂套娃前言指针可以说是C语言最强大的功能之一,通过指针可以直接访问内存。然而指针也是C语言中非常难掌握的知识点之一。如果可以灵活地使用指针,基本上可以

2021-04-17 17:30:11 568 5

原创 rand和srand函数的用法

目录前言一、rand函数二、srand2.读入数据总结前言之前在敲代码的时候用过rand函数,当时只是知道了rand函数要配合srand函数一起使用,才能达到产生一个随机数的目的,具体原因是什么则一知半解,后来闲着无事,查找了一下资料,差不多弄懂了。不过碍于本人水平有限,可能会有些地方理解有误,敬请给读者批评指正,并提出宝贵意见。一、rand函数rand函数是用来产生一个随机数,返回值为0~RAND_MAX,RAND_MAX不得小于32767,在编译器中可以通过查看定义来查看这个数具体是多少。不

2021-04-14 21:37:36 2370 6

原创 移位运算符的效果

目录移位运算符介绍一、左移运算符1.1左移运算规则1.2左移的运算效果1.2.1 不超过int范围内二、右移运算符2.1右移运算规则2.2 右移的运算效果移位运算符介绍以C语言为例,在C语言中移位运算符是指将二进制位向左或者向右移动n位,其操作数必须为整型。左移运算符:<< ;右移运算符:>>一、左移运算符1.1左移运算规则对于正数,左移1位,将当前所有位数向左移动一位,右边补零。例如:5用二进制表示为00000000 00000000 00000000 0000

2021-04-02 20:39:27 280 2

原创 青蛙跳台阶问题

C语言中青蛙跳台阶问题问题描述有一只青蛙,一次可以跳一层台阶也可以跳两层台阶,问n层台阶共有多少种跳法?解决方法首先假设当有n层时,有f(n)种跳法一、n<=2时n=1,只有一种跳法,即跳一层f(1)=1;当n=2时,有两种跳法:直接跳2层跳2次,每次跳1层,1+1=2f(2)=2;二、n>2时n=3,第一跳有两种跳法:跳1层,剩下2层剩下的两层又回到了n=2时的情况(可以理解为,青蛙现在处在第一层台阶上,还剩下两层,有几种跳法),因此又有两种跳法跳2层,剩

2021-03-20 16:11:02 589 3

空空如也

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

TA关注的人

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