自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【找单身狗】(2只):一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。

我们或许之前就已经做过这样的题:一个数组中只有1个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这1个只出现一次的数字。我们使用异或(^)可以很轻松地解决问题。当两个相同的数字异或时,结果为0。所以我们将所有的数字异或在一起,那么最后得到的结果就是那个只出现了一次的数字。我们来看下面的代码。显然我们找到了单身狗。

2023-03-31 09:08:34 478

原创 【数据结构】你真的认识“&”吗?它真的就只是“取地址”吗?或许你一直都在误解它。

注意,这里的&可不是表示取地址。如果你把它理解为取地址,那就在错误的路上狂奔,且一去不返了。相信大家在学习C语言时,也被指针折磨过不少。可能都出现过野指针等,这些失误让我们不胜其烦。其实,编写书籍的老师,使用“&”这个符号,就是为了减少指针的使用。“&”在这里,是C++中的“引用”。但是,这对于一些没有了解过相关语法的同志,那又成了一个坑。毕竟,C语言里面的“&”可是代表着“取地址”。那么,我们接下来就来好好说道说道,“&”到底是个什么东西。

2023-03-30 13:37:22 2485

原创 【C语言】【数据结构】循环队列实现(以带头节点的循环链表表示队列,并且只设一个指针指向队尾元素节点)

假设以带头节点的循环链表表示队列,并且只设一个指针指向队尾元素节点(注意:不设头指针) ,编写相应的置空队列、判断队列是否为空、入队和出队等。

2023-03-25 12:24:59 1801

原创 【C语言】实现通讯录(静态+动态+文件版本)完整代码

我们将通讯录分为三个文件来写。分别是contact.hcontact.ctest.c。

2023-03-23 09:19:03 415

原创 【C语言】 如何计算结构体的大小 - 结构体内存对齐

为什么会存在内存对齐?不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。

2023-03-18 15:02:37 500

原创 【数据结构】顺序表中,如何实现接口:删除顺序表中所有值为item的数据元素,且时间复杂度为O(n),空间复杂度为O(1)

实现一个接口函数:删除顺序表中所有值为item的数据元素,且时间复杂度为O(n),空间复杂度为O(1)

2023-03-12 10:14:51 522

原创 【数据结构】单链表中,如何实现 将链表中所有结点的链接方向“原地”逆转

如何实现:将链表中所有结点的链接方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求空间复杂度为O(1)

2023-03-11 16:56:45 2633

原创 [visual studio]中,关于如何 【调试】 的问题 及 技巧

调试(Debugging / Debug),又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。正如本文一开始所说,不会调试的程序员不是好程序员。所以,我们一定要多去调试,在调试中不断进步,祝你我代码能力越调越强,在编程这条路上,一路高歌。

2023-02-22 18:52:33 3081 2

原创 [C语言]中,为什么整型数据以浮点型输出(或浮点数类型的数据以整型输出),其输出的结果与我们预期的大相径庭?这篇博客,带你拨开云雾见月明。

在我们学习C语言的过程中,可能会出现这样的情况:我们定义了一个整型数据,想以浮点型输出,结果却不是我们预想的那样。根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数V可以表示成以下形式:(-1)^S * M * 2^E(-1)^S 表示符号位,当S=0,V为正数;当S=1,V为负数。M表示有效数字,大于等于1,小于22^E表示指数位

2023-02-21 00:10:41 4829 4

原创 【C语言】关于二进制中,操作符(>>,<<,~等)的应用:交换两个变量(不创建临时变量);写一个函数返回参数二进制中 1 的个数;打印整数二进制的奇数位和偶数位;求两个数二进制中不同位的个数

在C语言中,有关二进制、位操作符等 的题目也许会把你难住,看完本篇文章,你将对它们在C语言中的使用有一个更深的认识。

2023-02-07 21:55:27 261 4

原创 【C++】一篇博客带你速通 初识【默认成员函数】中的:构造函数、析构函数、拷贝构造

看完本篇文章,你将对C++中的默认成员函数的构造函数、析构函数、拷贝构造有一定的初步的理解。默认成员函数6个默认成员函数(特殊的成员函数): 如果我们不实现,编译器会自己生成一份。初始化和清理: 1. 构造函数主要完成初始化工作(类似init) 2.析构函数主要完成清理工作(类似destroy)拷贝复制: 1. 拷贝构造是使用同类对象初始化创建对象 2.赋值重载主要是把一个对象赋值给另一个对象取地址重载: 主要是 普通对象 和 const对象 取地址,这两个很少会自己实现

2023-02-01 14:39:14 166 1

原创 【C语言】【数据结构初阶】 选择排序 、快速排序(重点)- 详解

选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。我们可以对其做一个优化:我们一趟选择,同时选出最小的和最大的,而非只选出最小/最大的。但是选择排序的时间复杂度为O(n^2),最好情况下,也为O(n^2)

2023-01-26 20:49:10 460 2

原创 【C语言】【数据结构初阶】 插入排序 ,希尔排序 - 详解

插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序。

2023-01-26 12:37:49 623

原创 【C语言】实现扫雷小游戏 - 详解

在初阶学习C语言时,我们学习一段时间过后,可以通过写一个小游戏/小程序来提高我们写代码的能力,同时也为学习编程增添了一些乐趣,增加学习动力。

2023-01-16 14:15:41 267

原创 【C语言】 实现三子棋(井字棋) - 详解

在学习一段时间C语言后,我们可以写一个三子棋的小游戏。并且我们可以学着将代码分文间存放,而非全部写在一个文件内。比如将所有的函数声明,包含头文件,定义常量等都放在game.h里,将所有的函数实现放在game.c里,将主函数等放在test.c文件里。注意,这样就需要引用头文件,#include"game.h"

2023-01-15 11:33:43 930

原创 使用递归实现斐波那契数列、k的n次方、计算一个数的每位之和、字符串逆序、strlen、n的阶乘、打印一个整数的每一位(部分包含非递归方式)

所谓斐波那契数列,就是 1 1 2 3 5 8 13 21 .......这样的数列。第一位和第二位都是1,从第三位开始,为前两数之和,即F(n)=F(n-1)+F(n-2)

2023-01-14 10:12:20 909

原创 [C语言]中,常见的str函数,以及部分内存函数 (memcpy memmove)的模拟实现 - 详解

strlen() 函数是用来计算字符串长度的。例如:👇那么,我们要如何编写一个函数,来模拟实现strlen()的功能呢?

2023-01-11 23:39:46 345

原创 [C语言] 冒泡排序法 - 详解

冒泡排序是一种 较简单的 排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的 元素 ,如果顺序错误就把他们交换过来。

2023-01-10 15:46:23 2968

原创 【C语言】 求素数 / 求闰年【通俗易懂】

素数是在大于1的自然数中,除了1和它本身以外不再有其他因数。需要注意的是,1既不属于质数也不属于合数。

2023-01-08 16:26:02 212

原创 [C语言]中如何求解两个数的最大公约数【通俗易懂】

所谓的最大公约数,也称最大公因数,是两个或多个整数共有约数中最大的一个。我们这里只讨论两个整数的情况,当然了,多个整数也是一样求解,道理相通。直接求解,也就是所谓的“笨办法”,人轻松些,电脑累些。

2023-01-08 15:04:46 2074

原创 【C语言】中,输入一个数组,实现将输入的n个数字按照从大到小的顺序输出。【通俗简单易懂】

例如:第一次循环时,k=0,也就是先把数组里的第一个数,赋值给第一次循环里找到的最大的值;把第一次循环里找到的最大值,赋值给数组里的第一个数。这里需要注意,我们把k赋值给i,是为了避免前面已经排序好了的数字,再参与到之后的循环里,产生错误的结果或引起未知错误。本篇文章中,我们将讲述在C语言中,输入一个数组,如何用for循环实现将输入的n个数字按照从大到小输出。接下来的五个数字就是我们输入的数字。输入n,来决定数组中整数的个数。很显然,输出了三个最大的数字。接下来,就是对这个数组中的数字进行比较排序了。

2022-12-25 20:11:28 30680 5

空空如也

空空如也

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

TA关注的人

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