自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 数据结构 表(一)顺序表的基本操作

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 对于表,栈,队列,树,图等等数据结构,我们都可通过选择顺序结构或者链式结构来进行实现,下面就演示一下表的顺序实现。 因为这个太过简单所以就直接上代码 数据结构 typedef st...

2020-01-17 13:02:12

阅读数 7

评论数 0

原创 程序环境和预处理:翻译环境和执行环境、宏、条件编译

程序环境和预处理: 翻译环境和执行环境 宏 条件编译 翻译环境和执行环境 在ANSI C的任何一种实现中,存在两种不同的环境。 第一种是翻译环境,在这个环境中源代码被转换成可执行的机器指令。第二种是执行环境,它用于实际执行代码。 翻译环境 我们写的代码是如何从一开始的.c文件变化为可执行的....

2019-12-06 15:38:21

阅读数 10

评论数 0

原创 通讯录管理系统(C语言实现) 动态扩容,文件读写

通讯录可以用来存储个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址。而一个通讯录的管理系统,应该至少具备增、删、查、改等几项功能,并要对其进行拓展。 所以我们要实现的功能如下: 添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系...

2019-12-01 22:49:52

阅读数 13

评论数 0

原创 C语言 动态内存管理:动态内存函数介绍,常见的动态内存错误,柔性数组

动态内存管理目录: 动态内存函数的介绍 常见的动态内存函数的错误 柔性数组 为什么会有动态内存管理呢 我们在日常使用中,创建一个数组,一个变量时都会开辟空间 如: int a; //在栈上开辟一个四字节的空间 char str[5]; //在栈上开辟一个五字节的连续的空间 但是上...

2019-11-28 18:29:17

阅读数 130

评论数 0

原创 C语言 结构体,枚举,联合

目录: 结构体 枚举 联合 结构体 结构是一些值的集合,这些值成为成员变量。结构的每个成员可以是不同类型的变量 结构体的声明 struct s { char a; int b; }s1; 这里的a和b就是结构体的成员变量,s1就是结构体的名字。 当我们在声明结构体时,可以忽略...

2019-11-22 14:36:31

阅读数 15

评论数 0

原创 结构体内存对齐,位段详解

在我们学习结构体时,可能会碰到几个难以理解的问题,一个是内存对齐,一个是位段。所以我想分享一下我对这两个问题的理解,来帮助大家更好的学习这两个知识点。 内存对齐 int main() { struct { char i; char k; int j; }s1; struct...

2019-11-21 23:22:36

阅读数 8

评论数 0

原创 模拟实现字符串和内存操作函数(二):strncpy, strncat, strncmp, memcpy, memmove

模拟实现字符串和内存操作函数(二)目录: strncpy strncat strncmp strcmp memcpy memmove strncpy char* strncpy(char* dst, const char* src, size_t num) strncpy表示把src所指向...

2019-11-19 22:43:19

阅读数 9

评论数 0

原创 模拟实现字符串和内存操作函数(一):strlen, strcmp, strcpy, strcat, strchr, strstr

模拟实现字符串和内存操作函数(一)目录: strlen strcpy strcat strcmp strstr strchr strlen size_t strlen(const char* str) 字符串以‘\0’作为结束标志,strlen函数返回的是在字符串中‘\0’前面出现的字符个...

2019-11-18 22:40:04

阅读数 7

评论数 0

原创 C语言 指针的进阶(二):常量指针和指针常量、数组参数和指针参数、函数指针数组

指针的进阶(二)目录: 常量指针和指针常量 数组参数和指针参数 函数指针数组 常量指针和指针常量 在我们日常中,经常会用到一个关键字const const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高...

2019-11-10 20:42:24

阅读数 48

评论数 0

原创 C语言 指针的进阶(一):字符指针、数组指针、指针数组、函数指针

指针的进阶(一)目录: 字符指针 数组指针和指针数组 函数指针 字符指针 在开始讲解这一章节之前,我们需要了解指针前面声明的类型的意义 类型 * 指针名 对于指针来说,我们在给指针进行声明时,我们声明的类型并不是指针的类型,而是指针所指向的地址的类型,也就是指针看待这段地址的方式,它该如何...

2019-11-09 23:36:02

阅读数 35

评论数 0

原创 斐波那契查找(黄金分割法查找)

要想能够理解这一算法,需要先了解 1.二分查找 https://blog.csdn.net/qq_35423154/article/details/101383518 2.斐波那契数 https://blog.csdn.net/qq_35423154/article/details/1016844...

2019-10-30 22:02:04

阅读数 22

评论数 0

原创 插值查找法(按比例查找)

折半查找法:https://blog.csdn.net/qq_35423154/article/details/101383518 当我们在使用折半查找法的时候,都会有个疑问,为什么一定要用折半,为什么不能折三分之一,四分之一呢?为什么我们不能根据我们查找的数值的不同而制定不同的比例来查找呢?于是...

2019-10-29 13:37:14

阅读数 13

评论数 0

原创 深度剖析数据在内存中的储存

整形在内存中的存储 一个变量的创建要在内存中开辟空间,空间的大小是根据不同的类型决定的。 那数据在数据在所开辟的空间中是如何存储的呢? 首先我们要了解三个概念: 原码 反码 补码 计算机中的有符号数有三种表示方法,即原码、反码和补码。 三种表示方法均有符号位和数值位两部分,符号位都是用0表示正,...

2019-10-25 13:44:59

阅读数 26

评论数 0

原创 C语言 大端小端存储解析以及判断方法

当我们在C语言中查看数据在内存中的存储时,我们经常会发现一个很奇怪的现象,什么现象呢? 例如下面这段代码 int main() { int i = 1; return 0; } 数据在内存中的存放方式似乎和我们想象的顺序不太一样,在我们的常规认知不一样,在我们的常规认知中,它的存放方式应该...

2019-10-23 23:09:48

阅读数 13

评论数 0

原创 C语言 操作符总结

目录: 算术操作符 移位操作符 位操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 算术操作符 + - * / 注意事项: 1.除了%运算符之外,其他的几个操作符可以作用于整数和浮点数 2.对于/操作符如果两个操作符都为整数,执行整数除法...

2019-10-19 19:30:41

阅读数 12

评论数 0

原创 扫雷游戏(C语言实现)

《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。 以上就是扫雷的介绍,来源百度百科。 我在网上找了几个扫雷游戏,对于这样一个游戏我们不仅仅要实现其基础的功能,还要为了提升游戏性,我们需要实现...

2019-10-17 13:20:05

阅读数 351

评论数 0

原创 三子棋游戏-C语言实现(可自定义为n子棋)

三子棋是黑白棋的一种。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将一方自己的三个棋子走成一条线,就能获胜。 以上介绍来自百度百科 下面来以我自己的理解讲解如何用C语言来实现三子棋 对于一款游戏,首先我们必须要有一个可...

2019-10-11 13:50:19

阅读数 223

评论数 0

原创 判断字符串是否为回文(C语言 顺序栈)

首先我们需要确定思路,如何用栈来判断字符串是否为回文。 1.栈是先进后出 2.回文是指正读反读均相同的字符序列 从这两点很容易就可以联想到一个方法,我们先将字符串全部存进去栈中,再将它全部出栈,进行对比,如果完全相同则为回文,这是一个简单并且直接的方法,但是还有没有方法可以优化呢? 我们可以可以通...

2019-10-08 22:46:13

阅读数 160

评论数 0

原创 leetcode-876. 链表的中间结点解法

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返...

2019-10-03 12:47:39

阅读数 8

评论数 0

原创 leetcode-260.只出现一次的数字 III 解法

给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。 示例 : 输入: [1,2,1,3,2,5] 输出: [3,5] 注意: 结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。 你的算法应该具有线性时间复杂度。你能否...

2019-10-01 11:40:46

阅读数 11

评论数 0

原创 leetcode-136. 只出现一次的数字解法

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 对于这样一个问题...

2019-09-30 21:14:09

阅读数 11

评论数 0

原创 斐波那契数拓展问题:leetcode-70 爬楼梯问题 leetcode-1137 泰波那契数问题解法

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 这是道经典的题目,我们可以在Leetcode,pta,剑指offer等地方经常看到它。 对于这样一个问题,我们可以先列举出它的前几层来找到规律 f(1):1种 f(2):2种 f...

2019-09-29 13:25:55

阅读数 11

评论数 0

原创 斐波那契数的两种求法(迭代,递归)

**斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1.’ 了解到它的规律后,我们很简单...

2019-09-29 13:13:47

阅读数 45

评论数 0

原创 汉诺塔问题(递归)

相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保...

2019-09-27 15:42:55

阅读数 11

评论数 0

原创 输入任意长度的字符串,反向输出(递归)

递归既程序调用其本身,虽然递归对于内存和时间的消耗极大,但是有时候它可以很轻松的实现一些看起来不太容易的题目。 对于一个没有给出长度的字符串,我们有很多做法,可以用动态申请内存的方法来写,也可以通过栈或者双向链表来完成,但如果使用递归的方法,则可以很简单的实现。 void print() { c...

2019-09-26 17:41:45

阅读数 107

评论数 0

原创 折半查找法(二分查找)

假如我们在图书馆中整理书记,书按照序号有序排序,序号不连续,当我们需要从书堆中找到特定序号的书时,如果一本一本查找的话,我们可能需要查找N次。但如果我们先找到中间的书,将书分成两堆,与待查书对比,待查书序号较大的时候从序号大的一堆中在分成两堆继续对比,书号小时从小的那堆继续对比,直到找到对应书号,...

2019-09-25 21:08:36

阅读数 14

评论数 0

原创 猜数字游戏(c语言)

游戏内容:随机生成一个1~100的数字,让玩家猜测,当玩家猜错的时候提示是大了还是小了。 首先我们先对内容进行分析。 1.我们需要随机生成一个范围在1-100的数据供玩家猜测 于是我们可以想到用rand()函数来实习 ret = rand() % 100 +1; 但是如果多次实验,会发现每次给的随...

2019-09-24 21:02:38

阅读数 17

评论数 0

原创 打印一个n行的菱形(C语言实现)

打印一个n

2019-09-23 17:28:25

阅读数 134

评论数 0

原创 编程计算并输出1~50之间的所有数的阶乘(大数阶乘)

如果使用递归的方法,当阶乘计算到13!时数据就开始出现问题,因为int型数据无法保存这么大的数字,即使换成long ,long long ,double等也无法容纳,所以我们需要使用大数的方法来完成这道题目。 所谓大数就是将一个极大的数值拆分开来,每一位的数字都作为数组的一个元素保存起来,下面我将...

2019-09-21 23:40:33

阅读数 449

评论数 0

原创 My First Blog

个人简介: 陕西科技大学 网络工程专业的一个弱鸡,大一的时候用空闲时间自学了c,c++,c#等编程语言以及算法和数据结构,但仅仅只停留在入门,而且因为做题不多代码能力较弱,理论也仅仅停留在表面没有深入了解。 所以我决定在大二的时候开始写博客,分享自己所学并且与大家进行学习交流,提高自己的代码能力与...

2019-09-16 18:07:45

阅读数 80

评论数 1

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