- 博客(14)
- 收藏
- 关注
原创 排序超详解---一篇文章带你掌握所有实用的排序方法
本文主要是对我已知的所有排序方法进行总结。排序我们很早在学C语言的时候就接触过,比如冒泡排序,qsort的底层逻辑就是快速排序。我们今天不是要翻旧账,而是要把排序一家一锅全端了。本节内容难度适中,就是有点费脑,请最好先学习了数据结构的相关知识再来观看此文。话不多说我们现在开始:一。冒泡排序(Bubblesort)根据以上动图可以得出冒泡排序的精髓就是用前一个和后一个比,如果前一个数大于后一个数就交换一下,然后如此操作n个数据就会有n - 1次冒泡排序。
2024-03-29 17:23:16 629 4
原创 力扣622:设计循环队列(中等)
一般我们入手的队列都是单项不循环的,所以我们会更倾向于选择用链表来实现,并且会选择单链表来简化队列先入先出的规则,但是这个题可能会颠覆你的认知。我们再来看看chargpt3.5给出的循环队列的演示图(足够细致了):思考这个题要我们从0开始实现循环队列,那再用单链表就不太可能了,因为循环不了嘛。这个时候脑洞比较大的人比如我,就会想到很早做过的约瑟夫环,单项循环链表,带不带头无所谓的(带头反而浪费空间)。方案一:用单项循环链表。
2024-03-03 22:21:48 828 6
原创 编程环境和预处理(精选)
由于是后置++所以是先代入再++,这里就有先后之分了(循环语句没有),由于a比b小所以,m = :后面的b++但是由于a和b在前面已经加加过了,所以m = b++,b还要再加加,所以b就相当于++了两次,所以b = 7,a 也相当于加了两次,所以a = 4,但是由于m = b++,又是一个后置++,先代入再加加,b在第2次++还没进行时就待入m了,所以m = 6。就是说,如果头文件是用包括的,计算机就会直接在库里面找,如果是用""包括的计算机会先在当前文件中找,等到找不到了再去库里面找。
2024-01-22 17:50:33 1008
原创 C语言文件操作(精选)
第一个参数为文件指针,第二个参数为所起始光标所对应的偏移量(人为可控),offset如果是正的就是向右偏移(偏移到前面),如果是负的就向左偏移(偏移到后面),第三个参数origin是系统已给的三个参数之一,SEEK_SET是光标的起始位置为字符串最开始的位置(就是从第一个元素的位置开始偏移),SEEK_CUR就是从光标当前位置开始偏移,SEEK_END就是从字符串最后的位置(就是从最后一个元素\0的位置开始偏移)这三个参数一定是全大写的,并且在使用fseek时要防止越界读取。,那流有什么作用呢?
2023-12-29 17:35:24 449 2
原创 妈妈放心系列2:库函数和内存函数的模拟实现(C语言)
strcmp是字符串长度比较函数比较的是每位字母的ASCLL码值,strcmp(arr1, arr2)对于strcmp的两个参数,如果arr1等于arr2,就返回0,arr1大于arr2,就返回大于0(一般是1),反之则返回小于0(一般为-1)。这个的模拟实现会比较难一点,也是用两个指针同时同步来遍历整个数组,如果有一个地方不相等就可以比较出两个字符串的大小,如果相等就进入循环如果历遍到\0了还是相等的话,就说明两个字符串不仅相等里面的元素还是一样的。所以是size_t,打印也是用的%zd。
2023-12-19 16:23:42 1066
原创 妈妈放心系列---数据(整型和浮点型)在内存中的存储和动态内存管理的相关笔试题,结构体的相关基本运算,联合体的基本运算和应用。
题目一本系列是从C语言地狱难特辑中精选出来的,用于备考,复习。本文理解起来不会太难。主张一个由浅入深,有点基础就能学会。相关的笔试题都有标注可以依照个人能力进行掌握。废话不多说,开始今天的内容!!!!!!!!!!一。数据在内存中的存储的相关笔试题题目一int main()//VS认为char是有符号的//存储在a中要发生截断//11111111111111111111111111111111//整型提升,提升是提升符号位,负的就全提成1,正的就提成0。
2023-12-11 13:01:23 956 3
原创 C语言地狱难度特辑精选2:与指针运算和数据在内存中的存储相关的笔试题
上篇博客的内容只能给到一个量子微难,比较简单,如果你可以很好理解并掌握,那没什么好说的了,跟上我的节奏吧,开始今天的内容。还是那句话,如果感觉本节太难了,已经理解不了了,就算了。毕竟基础才是最重要的。要读懂本节需先掌握指针初阶进阶的所有知识,一维,二维数组的所有知识,结构体的所有知识。本节内容在本特辑也就可以给到一个量子中难,看能不能使你十分闭塞的眼界变得宽敞一点话不多说,现在开始!!!!!!!!!!
2023-12-03 11:36:59 930 4
原创 C语言地狱难度特集精选1:sizeof和strlen辨别和计算
如果你看完我的上篇博客----C语言指针进阶(选修)还觉得so easy,还能很好理解并掌握理解并感觉很轻松的话!!!恭喜你解锁《C语言地狱难度特集》,作者当然就是我了。本节为精选的第一个小内容,还是那句话,如果感觉本节太难了,已经理解不了了,就算了。毕竟基础才是最重要的。要读懂本节需要先掌握指针的初阶进阶的所有知识,一维二维数组的所有知识,sizeof和strlen的基本知识。话不多说现在开始!!!!!!!!!
2023-11-28 17:54:27 961 2
原创 C语言指针进阶(选修)
本章讲述的是C语言指针中的选修部分,我个人感觉是特别难的内容,在看本片博客前,请先学习指针初阶,循环语句,qsort函数的使用,函数调用,函数声明,函数定义等的相关基础内容,结构体初阶的相关知识,冒泡排序基本理论的应用,并且学会使用Cplusplus网站的使用。废话不多说,现在开始我的表演。
2023-11-20 17:12:43 210 3
原创 指针和数组的关系
本节讲的是指针和数组的关系,属于指针初阶的內容,要观看本文请先学完指针初阶的相关基础內容,本文只补充难度比较大的部分!!!仅为个人理解,由于个人水平原因,可能不够专业。下面正片开始。
2023-11-13 12:54:08 88 1
原创 C语言位操作符的几个你不知道的妙用
只有在一位中有1,其他位都是0,那只要将仅有的1挑出来让此为0,此过程还只执行1次,那就说明那个数n就是2的次方数,n - 1刚好时原来为1的那位变0,而使后面为0的位变为1,这样(n & (n - 1)==0的话,就说明n为2的次方数。首先1的补码只有最后一位是1,那如果一个数记为a的补码最后一位也是1,那将1& a,是不是最后的结果也是1,如果a为正数,那另外31位都是0,因为两个都是1才得1,然后再将a向右移1,位操作符的运算法则,反码,原码,补码的运算法则,10进制转2进制的方法,移位操作符用法。
2023-11-06 17:27:47 131 2
原创 Debug和Release,x64和x86的差别解答
release有净化,优化代码并且优化观察的作用,所以如果i的地址比arr的要高,那一定会陷入死循环的,release为了避免死循环,就会使地址由低到高打印,使之不会死循环,运行的结果也证实了这个结论!(这边一定要选一个好观察的地址,可以反复执行,因为每次地址都不一样),这里有人就有疑问了,你上一个博客不是说。首先本文是基于我的C语言调试的保姆级教程而增加的內容,仅起补充叙述作用,请先看完我的C语言调试技巧再来看这个比较好哦,(一定得是我的,别人的可能没有这个內容)的吗,怎么这里不一样了?
2023-11-04 00:52:53 252 5
原创 C语言的简单调试技巧(个人史无前例的保姆级教程)
当程序员写完代码,测试再对程序进⾏测试,直到程序的质量符合交付给⽤⼾ 使⽤的标准,这个时候就会设置为 release ,编译产⽣的就是 release 版本的可执⾏程序,这个 版本是⽤⼾使⽤的,⽆需包含调试信息等。调试⼀个程序,⾸先是承认出现了问题,然后通过各种⼿段去定位问题的位置,可能是逐过程的调 试,也可能是隔离和屏蔽代码的⽅式,找到问题所的位置,然后确定错误产⽣的原因,再修复代码, 重新测试。在打开内存窗⼝后,要在地址栏 比特就业课 输⼊:arr,&num,&c,这类地址,就能观察到该地址处的数据。
2023-11-02 01:08:25 354 3
原创 c语言项目:扫雷游戏
printf("很遗憾,你被炸死了\n");//存放排查出的雷的信息。#include "game.h"//为了使用自定义头文件里的函数要用''printf("--------扫雷游戏-------\n");printf("坐标⾮法,重新输⼊\n");printf("选择错误,重新选择\n");#include "game.h"//为了能使用头文件里的参数//printf("请输⼊要排查的坐标:>");printf("恭喜你,排雷成功\n");printf("退出游戏\n");//⽣成随机的坐标,布置雷。
2023-10-30 23:52:10 79 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人