自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单链表相关习题(超详细!)(1)

小编的方法是创造一个新的单链表,这个链表用来作为最后一个大的链表,首先,我们需要在创建两个指针,分别来来表示两个链表的头结点(pour1,pour2),之后我们需要进行二个结点数据的比较,如果第一个链表的结点小于等于第二个链表的结点,那么讲第一个链表的数据放入到新链表中,如果新链表是空的话,直接头结点给第一个链表,否则新链表当前结点下一个结点就是第一个链表的结点,然后让第一个链表往后走,新链表往后走,第二个链表不动;所以我们首先要把新链表最后一个节点的下一个指针指向空,这个时候我们就可以返回头结点了!

2024-07-18 09:00:00 321

原创 数据结构——单链表详解(超详细)(2)

这里我们可以用到我们上面用到的查找函数,因为它是返回的结点,所以我们可以通过它来确定我们想要的指定位置,因为单链表只可以往后一步一步的走,而不能往前找数据,所以我们得先确认我们想要找的位置,下面我们涉及指定位置的时候,都要引用一下查找指定位置这个函数,下面我们来进行这个函数的讲解,这个函数其实也分为两种情况。第一种情况是指定位置就是头结点,此时这就类似于我们之前写过的头插函数,我们直接引用头插函数就可以实现这个功能。第一种情况就是我们想要删除的指定节点就是头结点,此时我们只需要调用一下头删函数就可以实现。

2024-07-17 09:00:00 476 1

原创 数据结构——单链表详解(超详细)(1)

简单的插入函数就先告一段落了,下面我们来进行删除操作,首先登场的就是尾删,尾删操作,与顺序表的尾删一个概念,就是把单链表的尾结点置为空,首先,我们需要保证头节点是存在的,不然单链表都是空的,我们删来删去也没什么意思了,这里可以用assert断言来判断下头节点是否为空,之后我们就可以进行删除操作·。此外,对于单链表代码的书写,小编同样是分成了三个文件,与顺序表一样,这三个文件分别是头文件(用于单链表的创建,各种函数的声明),源文件(函数的实现),源文件(代码的测试),

2024-07-16 09:00:00 1288 3

原创 轮转数组(超详细!)

其实,我们开辟这个新数组的作用,是把它当作中间商的,它是来存放我们数组进行轮换之后的数的,之后我们可以把轮转完后的新数组的内容在给予我们本来的数组,这样我们就可以减少时间复杂度了!对于轮转数组,第二种解法思路就是通过空间复杂度来代替时间复杂度的思想来进行撰写,此时这个代码主要看空间复杂度从而忽略时间复杂度,这里小编先透露一下,此时的空间复杂度是O(1) ,下面小编将会解释这个代码如何进行撰写!答案是肯定的,下面小编先来通过例子的方式,来给各位读者朋友来解释一下,我们如何通过逆置来进行轮转操作的。

2024-07-12 09:00:00 574 5

原创 算法复杂度详解( 超详细!)

首先,我们从第一个循环开始看,这个是个循环的嵌套,所以一共进行了N * N次,也就是N ^ 2次,之后我们在看下一个循环,很显然,循环了2 * N次,所以一共有2N次,在看下一个循环,根据题目的意思,所以这里其实循环了10次,所以一共有 N ^ 2 + 2 * N + 10次,可能由于很多读者朋友会疑惑为什么在进行创建变量的时候不算次数,因为这个次数太小,所以可以忽略掉,小编下面就直接忽略这个了!对于上面题目的错误,超出时间限制,涉及到了时间,所以很明显是时间复杂度出现问题了,那么到底出现了什么问题呢?

2024-07-11 09:00:00 600

原创 探寻IT的道路,从现在开始!

最后,小编其实也是一名大学生,来自一个普通的学校,小编深知一些不太好大学的教育方式,大多都是扫盲教学,并且大学真的就是靠自己了,选择学四年还是玩四年全部都决定于你,既然你想要学习编程,说明你还是想要认真学习的,大学主要以自学为主,各位一定利用好自己找到的资源,好好学习,c语言只是我们学习编程的起点,但是学完C语言可以帮助我们打好编程基础,为了更高级语言做出准备,希望下一个进大厂的就是你!明日之星,加油吧!

2024-07-04 09:00:00 431

原创 (番外篇)指针的一些相关习题讲解(速进,干货满满)(2)

老规矩,各位先看会题目,我等会做出解释,下面开始解释:首先这个题定义的二维数组,然后设置了一个整型指针,此时指针指向二维数组第一行的地址,然后printf函数里面的是p[0],此时其实有第二种写法,就是*(*p + 0),此时不难看出,这个是指向数组第一个元素的地址,那么我们回头看看这个二维数组,可能有些读者会脱口而出,答案是0,但是其实这个说法是错误的,仔细看,数组里面每两个元素用什么围起来的,是括号,而不是大括号!

2024-07-03 09:00:00 868 1

原创 顺序表的应用——通讯录的创建

小编在刚刚说出哦,通讯录的实现的底层代码是顺序表,所以我们可以完全通过前文的顺序表的代码,来基于此开展最详细的代码书写,不过此时我们要更改一些数据,就比如前文我们讲过的顺序表的变量都是整型,这次要改成结构体类型了(通讯表的类型),此时就要展现小编前文写过的对于typedef的妙用了,这个时候我们直接把整型改成通讯录的结构体类型就好了,这里就展示了此代码的灵活性,不过我们想要运用通讯录的时候,一定要记得包含通讯录的头文件,不然会报错的。这便是通讯录所包含的内容。

2024-07-02 09:00:00 623

原创 打开数据结构的大门——顺序表详解

其实这俩的区别是显而易见的,一个是一个定长的数组,一个是动态的数组,静态顺序表最大的缺点其实就是这个定长,假设我们想要存放一个100个元素的数组,但是此时静态顺序表中数组里面仅仅可以存放99个元素,那么这个时候我们又得大费周章的把数组元素个数增大,这样会显得很麻烦,可读性很差,但是此时对于动态的数组可就不是问题了,只要进行相应的扩容,就可以解决这个问题了,所以通过比较来看静态顺序表的局限性太大了,动态顺序表就灵活了很多,所以之后小编更推荐大家用动态顺序表来进行代码的书写。

2024-06-29 09:00:00 671

原创 (番外篇)指针的一些相关习题讲解(速进,干货满满)(1)

对于第一行代码,函数里面是数组名,并没有进行取地址操作,所以此时指的是数组第一个元素的地址,从数组第一个元素开始往后找'\0',细心的读者朋友可能已经发现了这个数组中我并还没有写'\0',所以此时strlen会一直往后计算个数,直到找到’\0‘为止,所以此时,字符的个数是随机的!对于第八行的代码,此时我们是对a[0]先进行了取地址操作,此时的a[0]实则是第一行元素首元素的地址,在进行取地址操作的时候,符合特殊情况,取出了第一行元素的地址,在进行加一后变成了第二行数组的地址,由于是地址,所以是。

2024-06-28 09:00:00 978

原创 深入理解并打败C语言难关之一————指针(5)(最终篇)

指针的相关知识点

2024-06-19 09:00:00 1090 2

原创 好用的库函数,qsort函数大详解(干货满满!)(进阶)

交换操作可以通过我们再写一个交换函数来进行数值的交换,我们在交换的时候,要考虑到我们传参的时候不一定传的就是整型,我们上面式子的交换是只是针对整形的,对于字符型的,小编认为,我们可以通过一个一个字节的来进行交换,这样的话,我们既可以针对字符型,也可以针对整型了,现在我们已经有了这个函数的大致思路了,下面就我们就来进行函数的写正式描写喽!大家平常一定要多复习自己学过的知识,避免忘记过多,明天可能会停更一天,小编歇一天,如果文章有错误,恳请大家指出,小编虚心求教,我们下一篇博客见喽!

2024-06-17 09:00:00 2134 2

原创 好用的库函数,qsort函数大详解(干货满满!)(初阶)

我们不要过度依赖库函数,要有着自己的思想,如今很多人说现在是AI时代,AI时代会淘汰程序员这种话,我觉着这是错误的,因为AI终究是机器思想,它可能会帮我们去干一些活,虽然很好用,但也会让我们不在想思考,让我们思考能力下降,所以我们也是不能一直依赖AI,我们要会自己思考,况且程序员也是不断在学习的,目前程序员还是无法被淘汰的,这里说了不少脱离文章本身的话,也是通过滥用库函数而感慨一些了。透过现象看本质 ,明白它背后的逻辑,懂得此代码为什么去写!2.冒泡排序和qsort的代码比较。

2024-06-16 09:00:00 1288 2

原创 深入理解并打败C语言难关之一————指针(4)

很显然,我们的说法是正确的,我们现在已经了解到了数组指针的创建和初始化了,那么在进入下一篇文章之前,不知道大家是否还记得我以前写的文章中,&arr代表的是整个数组,当时我并没有很详细的解释,现在我们学了数组指针,这个问题就好解决了,因为&arr的类型是int(*)[10],所以它代表的是整个元素的地址,所以我们让它加一的时候它会跳过一个数组的字节!我们知道哦在一维数组传参的时候传过去的是数组名,是首元素的地址,我们在传参二维数组的时候,同样也是传的数组名,但是数组首行的地址,那么我们形参可以怎么写呢?

2024-06-15 09:00:00 1066

原创 C语言重要算法之一——冒泡排序详解(干货满满,欢迎各位朋友的观看)

在讲述冒牌排序的逻辑之前,可能有些读者朋友并不知道冒牌排序是干什么的,我在这里简单的说一下,冒牌排序就是一个对你所选择的数组进行升序排序的,加入你想要个升序数组,那么冒牌排序是一个可以帮助你的不错的算法(后期我会将qosrt函数,这个是更加好用的,读者们敬请期待)其实,这里我是为了展现此代码的不足的, 就拿我们上面的输入举例,因为上面的式子是完全降序的,所以我们会完整的循环45次,可能读者朋友们会觉着这样是完全没问题的,但如果我输入一个完全升序的一串数呢?这个到底有什么作用?

2024-06-14 09:00:00 676

原创 深入理解并打败C语言难关之一————指针(3)

其实用指针数组我在上一节课的代码中就已经实现了,以后我还是得改掉超前讲的坏毛病,不多废话,我们知道数组名就是数组第一个元素的地址,所以我们在使用输入函数的时候便可以用数组名来替代&arr[i]类似这样的写法,这样可以减少我们在使用scanf函数的时候忘记运用取地址符的尴尬情况(小编就时常忘记写这个,我还抱怨是编译器的问题,😅),在打印的时候我们就可以利用解引用操作符来实现操作,光说不练等于白说,下面来进行一个久违的环节,小小的例题。我们不难看出,这里打印的结果是40个字节,为什么会打印出40呢?

2024-06-13 09:00:00 1449

原创 深入理解并打败C语言难关之一————指针(2)

在讲传址调用之前,先来解释一下传值调用为什么不能实现两个函数之间的调换,因为我们知道,在调用函数的时候函数里面的参数是实际参数,之后在定义函数的时候,函数里面的参数是形式参数,所以形式参数是实际参数的一份临时拷贝,当我们出函数的时候会让形参释放(销毁),所以吗,在我们传值调用的时候,在交换后形式参数已经被销毁了,所以形式参数的改变不会影响到实际参数,可能有的人会说,为什么不在函数内部打印呢?野指针就是指针指向的位置是不确定的,下面来看看常见的野指针出现的成因。

2024-06-12 09:00:00 1023

原创 深入理解并打败C语言难关之一————指针(1)

这样可以把a数值里面的值进行改正 ,* 变量名 = 你想要的值,这就是如何进行解引用操作,可能很多人会想,如果想要把变量的值进行改变,直接 a = 13 不就好了,理论上这么干是没有问题的,但是我们在这可以比喻一下子,我相信各位都接触过《狂飙》这一部胡=剧,在这里面,高启强每一次想杀人的时候都不是靠自己出手,我们可以把它比做成变量,他一般会对老默说:老默,我想吃鱼了,把这种肮脏活交给老莫去做,我们在这里可以把老莫比做成指针变量,很多事情不用老大(变量)去干,让小弟(指针变量)操作就好了。

2024-06-11 11:59:58 1095

原创 扫雷游戏(超详细的讲解和代码实现)

正文一.使用工具VS2022二.扫雷游戏的简易介绍以及游戏设计思路《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。所以这个游戏想要实现就必须包含这几个步骤:1.菜单的打印 2.棋盘的打印 3.对于雷的布置 4。如何进行雷的排查扫雷游戏网页版 - Minesweeper。

2024-06-04 09:00:00 876 1

原创 分支与循环(下)(2)

对于for循环和do while循环的讲解

2024-05-12 09:00:00 1275 2

原创 分支与循环(下)(1)

五一假期过的真快,不知不觉的就到了假期末尾,我也要重新回到学校了,有一说一,我还是很喜欢呆在家里打代码的,因为我在家用了一次青轴以后就迷上了青轴的感觉(在宿舍为了照顾室友我用的是茶轴键盘,在他们睡觉的时候我用的笔记本键盘,为了不影响到他们),在家里我可以比较放得开的打,当然在家人睡觉的时候我还是不会打的,回到学校我更要开始抓紧学习了,我希望一年后的我回看现在的我,可以为我自己感到自豪,行了,话不多说进入正题了。while的使用正如上图所示,光看用法是很难掌握代码的,光看定义不练等于没有,下面直接上例题。

2024-05-05 17:45:53 430 5

原创 分支与循环(中)

我们在使用switch语句的时候,经常会碰到一种情况,那就是switch后面的值无法匹配到case语句后面的值(驴唇不对马嘴【字面意思】),就比如上面那个代码,我如果输入112,那么case后面的值将和112对应不起来,这时候为了让代码更美观,default便会出现,它的作用就是如果碰到驴唇(switch)不对马嘴(case),便会输出它后面的值,所以上边我让其后面的值来提醒别人,相信不少读者会想可不可以这样以后可以跳转到开头重新输入,不要着急,我会在后面goto语句的时候来对这个代码进行进一步的完善。

2024-05-04 09:00:00 1624 1

原创 分支与循环(上)【五一快乐,朋友们】

以上便是关系操作符,它在用于逻辑运算的时候有奇效,可以类比于数学的运算,但需要记住一点的是,关系操作符是不能够连用的,就比如如果想输入一个数既大于18又小于20,不可以写成18 < a < 20,这个在数学中是可行的,在编译器中是识别不出来的,想要表达这个关系的时候要用到”&&“操作符,至于它的使用不要着急,后文我写了,这些便就是关系操作符了,其实也没有啥难得,知道怎么用就可以了。对于这个题的解析我已经在解释中说了,从这可以看出解析的重要性,对于解析的重要性我已经在一篇博客写到了,感兴趣的可以看看。

2024-05-03 09:00:00 766 1

原创 (想要整活速进)可以恶搞舍友的代码,作者超级推荐的代码!!!i

废话不多说,刚开头先设置一个字符型的一维数组,长度设置一个20的(因为后来输的都是字符,所以用char类型),之后用了system库函数,这个函数包含在头文件<stdlib.h>里,它的作用简单来说就是执行系统命令,先不管again,先打印出自己想说的话,那个输入后面的你可以自己改,比如,散了,说多了不好,之后运用scanf输入值,可能有些人会觉得奇怪,为什么scanf函数里面的imput并没有加取地址符,先记住,数组名是不需要取地址符的,但是例如input[i],表示元素,需要&。然后发给舍友就好了。

2024-04-20 10:55:07 548 1

原创 要学会正确的使用注释

这个是不加注释的,还是那句话,现在可能自己并没有什么感觉,觉着这样看着更简洁,但是以后呢,举个例子,在你打完游戏后你在看自己写的代码,你可能就看不懂了(这个例子根据我真实情况改编的),所以,注释真的对于自己个人亦或者对他人有很大帮助,平常自己打代码的时候一定要记着加注释。上边是加了注释的代码(虽然我觉着我自己总结的很差,但有总比没有强),现在看可能并没有什么感觉,但是当我们后来再来看的时候,会让我们联想到当时自己打代码的状态,从而可以更好的知晓这个代码怎么打。希望我以后不会犯这样的错误。

2024-04-19 23:53:06 152 2

原创 初始C语言(下)

字符,顾名思义,我们的键盘上就有很多的字符,比如a,b,c,d,e,f等等,在c语言中,字符常用单引号引入,比如'a','b','c'等等,记住单引号里面只能有一个字母,提前说一下,如果像代表多个字母,要用双引号,叫做字符串,例如:"avde","kounijiwa".以后都会讲到的。字符串我前面有提到,就是双引号引入东西,可以用%s来代替,同样这是后期学的(别问我咋知道的,问就是我学了很多才想起博客了,我是罪人).直接上手展示一下,不知道咋说了.在现代系统上,这已经反映不出来了,⾏为改成类似于。

2024-04-12 23:27:44 539

原创 初识C语言

这是我刚接触C语言的时候认识的一个简单的程序,可能对于对C语言颇有研究的人会嗤之以鼻,觉着这是一个在简单不过的程序了,但作为一个新人,我刚开始看的时候会对此有很大的疑惑,我不理解stdio.h,int main(),printf等等词语的意思,也不明白为什么这一段奇异的代码会最后呈现出"首先了解头文件的格式:xxxx.h,源文件的格式:xxxx.c. 我们在VS写代码的时候,一般我们会把一个代码放在一个项目之中,从这里可以创建一个新项目,点开创建新项目.从这创建空项目,然后点击下一步继续创建。

2024-03-30 19:42:54 982 3

单链表相关的代码,在文章写之前先交上

这个是小编在书写单链表文章之前,为了满足有些读者朋友只想看到单链表代码如何进行书写,特地来把小编写过的代码传过来,可能会有错误,如果有错可以私信我,小编会及时回复。

2024-07-15

升级的扫雷游戏,可以看一下有兴趣的话

这个是升级的扫雷游戏

2024-06-03

扫雷游戏(超详细的讲解和代码实现)

这个是完整的代码,如果文章部分代码看不懂可以看源码

2024-06-03

空空如也

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

TA关注的人

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