自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于EasyX的贪吃蛇小游戏 - C语言

头文件snake.h: 包含必要的库和函数声明。主文件DoMain.cpp: 包含游戏的主循环和游戏状态的控制。实现文件snake.cpp: 包含所有函数的具体实现。//定义 蛇 结构int size;//蛇的节数int direct;//蛇前进的方向int speed;//蛇的速度//每一节蛇的坐标 (0 :蛇头)游戏中蛇的每一节对应一个snake结构,储存坐标信息 ,前进方向和步长(速度)。//定义 食物 结构int x;int y;int r;//食物的半径。

2024-06-05 15:36:38 1694 1

原创 C++ 引用 - 引用的特点|在优化程序上的作用

在使用中,主要有这两个区别和联系:1.定义引用时:`&`在类型之后,表示该变量是引用。

2024-06-12 13:29:13 719

原创 C++ 命名空间|缺省参数|函数重载

这三种方式各有优劣,直接使用作用域限定符最为清晰明确,但较为冗长;`using` 声明适合局部引入特定成员;`using namespace` 指令则最简便,但可能引入命名冲突风险。如果函数在头文件中声明并在源文件中定义,则缺省参数不能在函数声明和定义中同时出现,所以在函数声明的时候给缺省参数, 定义的时候不给缺省参数。因为如果声明与定义位置同时出现,恰巧两个位置提供的值不同,编译器就无法确定到底该用哪个缺省值。C++ 的函数重载是指在同一个作用域中,可以定义多个同名但参数不同的函数。

2024-06-10 22:37:45 972

原创 数据结构 - 算法效率|时间复杂度|空间复杂度

时间复杂度是衡量算法执行所需时间的指标,表示算法执行时间随输入规模增加而增长的速度。在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有我们把的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。2.2大O渐近表示法。

2024-03-30 23:43:20 1040 2

原创 函数栈帧的创建和销毁 - 局部变量|函数传参|函数调用|函数返回|图文详解

是在函数调用期间在上分配的内存区域,用于存储函数的局部变量、参数、以及用于函数调用和返回的相关信息。每当函数被调用时,都会创建一个新的栈帧,函数执行结束后,该栈帧会被销毁。

2024-03-20 17:50:28 1022 2

原创 C语言程序环境和预处理Pt.2 - 宏的命名约定|#undef|命令行定义|条件编译

Pt1:C语言程序环境和预处理Pt.1 - 预处理指令|预处理操作符-CSDN博客。

2024-03-20 14:42:50 579 2

原创 C语言项目实战:通讯录 - 增删查改|动态分配|数据读取和保存

该项目用C语言实现了一个字符界面的通讯录,在终端窗口运行,功能包括对联系人信息的增添,查找(按照姓名),修改,删除,展示,排序(按照年龄)的功能;该代码的内存为动态分配,会随着输入数据的增多而动态分配,不用担心造成内存浪费的情况;在结束进程时,程序还能保存联系人数据到本地文件(以二进制形式保存),并在下一次打开时从本地读取到程序内存中。return 0;return 1;p->size++;fclose(pf);

2024-03-16 15:09:28 391 1

原创 C语言程序环境和预处理Pt.1 - 预处理指令|预处理操作符

_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义。

2024-03-14 09:45:11 942 3

原创 C语言文件操作 - 基本操作|二进制文件|读取结束判定|文件缓冲区

其中,stream是文件指针,offset是偏移量,origin是offset的参考,一共有三种:SEEK_SET : 文件的起始位置SEEK_CUR : 文件指针的当前的位置SEEK_END : 文件的结束位置示例:假设在项目路径下有data.txt的文本文档,内容如下:int main()return 1;//定位文件指针到'f'//从文件开始的位置,定位到'f',偏移量是5fclose(pf);pf = NULL;return 0;

2024-03-09 15:59:38 900

原创 C语言动态内存管理 - 动态内存函数|相关笔试题

stdlib.h>这个函数用于向内存申请一块连续可用的空间系统内存足够,内存空间开辟成功,返回一个指向开辟好空间的起始位置的指针。系统内存不足够,内存空间开辟失败,则返回一个NULL指针,因此malloc的返回值一定要检查是否为空。malloc的返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。特别的,如果参数 size 为 0,malloc的行为标准是未定义的,取决于编译器。

2024-03-02 22:33:21 848 3

原创 C语言自定义类型 - 枚举|联合

目录1.枚举2.联合枚举(enumeration)是一种用户定义的数据类型,用于定义具有离散取值的常量。枚举可以帮助提高代码的可读性和可维护性,使得程序员可以使用易于理解的符号来表示特定的取值范围。枚举顾名思义就是一一列举,把所有的可能都列出来,就是枚举。枚举的定义:枚举通过enum关键字定义,其语法为:这些可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。例如:枚举类型的使用:定义枚举后,可以使用该枚举类型来声明变量,也可以将枚举成员作为常量来使用。一下是一个用C语言实现的

2024-02-27 23:37:40 383 1

原创 C语言自定义类型 - 结构体内存对齐|位段

offsetof是 C 语言标准库stddef.h中的一个宏,用于计算结构体中成员的偏移量。它的作用是返回某个结构体中特定成员的偏移量,以字节为单位。这在需要直接访问结构体成员时非常有用,尤其是在涉及底层编程或者实现数据结构时。原型:PS:偏移量偏移量指的是在数据结构中,某个特定成员相对于结构体(或数组...)起始位置的位置差值,单位为字节。offsetof需要接收两个参数,第一个(type)是结构体类型,第二个(member)是结构体名。当我们使用offsetof来计算结构体每个成员的偏移量时。

2024-02-27 15:39:28 987 1

原创 C语言指针进阶操作 - 指针类型|指针传参|回调函数|笔试题

指针是一种特殊的变量,用于存储内存地址。可以直接访问内存中的数据,而无需知道变量的名称。指针变量包含一个内存地址,该地址指向存储在计算机内存中的数据位置。

2024-02-10 13:40:42 951 3

原创 整形数据在内存中的存储 - 原码反码补码|大小端|整形提升

在计算机系统中,数据可以按照不同的字节顺序存储,主要有大端序(Big Endian)和小端序(Little Endian)两种。大端(存储)模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端(存储)模式:是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中。具体系统采取哪种顺序储存,取决于硬件。要注意:数据都是从较低位置开始向高位置存储的,这里的顺序是指的在存储一个整形数据时,数据的低位和高位在已经划分好的一片整形数据内存空间内的存储顺序。

2024-01-31 21:26:14 885 2

原创 PTA - 新年烟花|C语言|代码详解

新年来临,许多地方会举行烟花庆典庆祝。小 C 也想参加庆典,但不幸的是跟他一个想法的人实在太多,活动场地全是人人人人人人人人人……活动场地可视作一个 N×M 的矩阵,其中有一些格子是空的,另外有一些格子则被人或者建筑物占领了。烟花会在一些格子上开始燃放,一个空的格子是一个对小 C 而言的优秀的观赏位置,当且仅当这个格子能看到三个及以上不同格子上燃放的烟花。现在给定活动场地的情况以及小 C 的身高,请找到所有对小 C 而言的优秀的观赏位置,并输出能看到最多的烟花的格子的坐标。

2024-01-03 21:36:30 1408 2

原创 链表(Linked List) - 链表的创建、遍历和插入与删除

链表是由一系列结点组成的,每个结点包含数据以及指向下一个结点的引用。

2023-12-27 20:25:54 1420 2

原创 PTA - 用扑克牌计算24点|C语言|代码详解

一副扑克牌的每张牌表示一个数(J、Q、K 分别表示 11、12、13,两个司令都表示 6)。任取4 张牌,即得到 4 个 1~13 的数,请添加运算符(规定为加+ 减- 乘* 除/ 四种)使之成为一个运算式。每个数只能参与一次运算,4 个数顺序可以任意组合,4 个运算符任意取 3 个且可以重复取。运算遵从一定优先级别,可加括号控制,最终使运算结果为 24。请输出一种解决方案的表达式,用括号表示运算优先。如果没有一种解决方案,则输出 -1 表示无解。

2023-12-21 19:38:01 1434 1

原创 深度优先搜索(DFS)

深度优先搜索(DFS)是一种用于遍历或搜索图和树的算法。它从起始节点开始,沿着路径尽可能深地探索,直到达到目标节点或无法继续为止,然后回溯到最近的一个未探索节点,继续探索。

2023-12-13 00:35:47 215 1

原创 函数递归的思想与应用|C语言

程序在执行时自己调用自己的编程技巧称为函数递归是一种解决问题的方法,其中问题的解决方案依赖于相同问题的较小实例。在函数递归中,问题被分解为更小的、相似的子问题,直到达到一种基本情况,然后逐步将结果组合起来,得到原始问题的解。这是递归的结束条件。当递归到达基本情况时,函数将不再调用自身,而是返回一个确定的值。在这一部分,函数调用自身,但通常是通过解决一个规模更小的子问题。递归情况将问题划分为更小的子问题,然后通过逐步解决这些子问题来解决原始问题。

2023-12-05 17:26:36 1144 3

原创 PTA - 试试手气|C语言|题目分析|简单易懂

我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。那么你应该可以预知自己第 n 次(1≤n≤5)摇出的结果。

2023-11-29 09:43:28 605 2

原创 PTA - 大炮打蚊子|C语言|代码详解|简单易懂|做题经历

这是处理每一发炮弹杀伤情况的另一部分代码,炮弹落点正上方没有蚊子,则检查以炮弹落点为中心的上下左右四个方向是否有蚊子,需要注意,在检查时需要注意即将检查的位置是否超出了`gird`数组的范围,故这里的第一个`if`语句控制了检查的范围。该部分定义了一个蚊子生命值整形数组,并初始化为`0`,然后遍历刚刚读入到的`gird` 数组,如果这个地方有蚊子,则在`healthPoint`数组中的对应位置赋值为`2`(默认蚊子共有两滴血,符合题目需要),这样,我们就得到了一个储存了蚊子生命值的数组了。

2023-11-22 09:36:35 471 1

基于EasyX的贪吃蛇小游戏 - C语言

基于EasyX的贪吃蛇小游戏 - C语言

2024-06-05

空空如也

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

TA关注的人

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