自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言 数据结构 移除元素

当src指向的元素和val的值不同时,把src指向的元素赋值给dst指向的元素。直到src的值大于数组总的元素个数时,跳出循环。此时的dst的值就是这个数组剩下的元素个数。如:nums[] = {3,3,3,2}。val = 3,这个数组在删除val = 3时,还剩下一个元素2。现在有一个已知数组nums和一个值val。计算这个数组删除所有和val相等的元素后,还剩的元素个数。现在有个数组nums[] = {3,4,4,5}. val = 4。遍历这个数组,当src指向的元素和val的值相等时,src++

2025-02-19 18:51:03 157

原创 C语言数据结构 动态顺序表

动态顺序表是通过结构体来实现的。现在来思考一下。动态顺序表可以实现内存动态的调整。这里就要用到realloc。realloc的返回值类型时void*,所以在结构体中我们需要定义一个指针来接收realloc返回的指针。这里假设我们要存储int类型的数据。int* arr;现在定义了一个int*类型的指针来接收realloc返回的地址。顺序表除了需要接收地址的变量外,还需要两个变量,一个用来表示这个顺序表的容量大小,另一个用来表示顺序表内有效元素个数。int* arr;//用来表示容量大小。

2025-01-21 14:13:42 577

原创 C语言 旋转数组

reverse函数只需要对数组进行逆置,不需要返回值,所以函数的返回类型是void,需要把数组传给函数reverse,所以第一个参数是int * a,用来接收数组。但代码还是不够完善,我们上面的例子都是numSize大于k的情况,没有考虑numSize小于k的情况。我们就可以实现把numSize < k的情况转变为numSize > k的情况。我们只要不断的进行上面的步骤就可以完成逆置,显然是需要一个循环来进行多次操作的。我们可以发现左边旋转3次的效果和右边旋转1次的效果最终都是一样的。

2025-01-20 18:43:11 347

原创 C++ namespace介绍

在这句代码中,小伙伴可以发现有个符号" :: ",这个符号的名字是域作用符,它可以帮助程序找到对应域中的变量或函数等…比如说我现在要打印变量a,我们知道变量a在mm域中,我们可以使用域作用符mm::a。域mm在域hh中,我们用域作用符hh::mm::a。在不同域中可以定义相同的名字,在同一个域中不可以定义相同的名字。我们可以发现,报错了。using namespace hh来把hh域和全局域相同,但这里我们发现在全局域中定义了变量b。在这个代码块中,我们想要多次使用hh域中的a和单独使用hh域中的b。

2024-11-10 12:54:09 939

原创 C语言 一元买一瓶水,两个空瓶子可以换一瓶水,用户输入钱数,返回总共可以换多少瓶水

当我们首次进入bottleNum()函数时,我们的total有m瓶水,m瓶水可以产生m个空瓶。这里我们需要注意的是,当我们用empty除以2的时候(两个空瓶换一瓶水),是有可能产生余数的,比如我们现在有3个空瓶,用两个空瓶换一瓶水,现还剩下一个空瓶。分别存放买水的个数和空瓶的个数.在我们把money传入bottleNum()函数时,比如我们传入的是9.那么现在我们可以花费9元来买9瓶水。而empty空瓶的数量是我们买多少瓶水决定的,我们买了m瓶水,即产生m个空瓶。水变空瓶,空瓶换水,不断循环。

2024-11-10 10:05:36 315

原创 C语言分别输入年份和月份,输出这个月有多少天

小伙伴这里会发现我在数组最前面加了一个元素0,目的是把每个月份往后移一位,使得数组中的天数下标可以正好和月份对应上.我们定义一个变量day.让这个变量接收days[m].(若没有在数组前面添0,这里写的是day = days[m - 1])最后return 变量day。由于最后需要输出这个月有多少天,所以getDays()函数的返回值类型为int.我们要输入年份和月份,所以这个函数的参数为两个类型为int 的形式参数,分别为y和m。在这道题中,我们可以写一个getDays()函数来完成我们的需求。

2024-11-04 23:49:03 688

原创 C语言二分查找,画图讲解

要想得到数组中间的下标,我们可以在定义两个变量left和right,给这两个变量分别赋值数组第一位元素的下标和数组最后一位元素的下标。2、mid所指向的元素arr[mid]大于num.此时的num在mid的左边,我们要缩小范围,让right移到mid左边一位,让mid重新指向新right和left中间的下标。1、mid所指向的元素arr[mid]小于num.此时的num在mid的右边,我们要缩小范围,让left移到mid右边一位,让mid重新指向新left和right中间的下标。可以快速的找到数字。

2024-11-02 15:36:01 721

原创 C语言猜数字游戏

由于时间一直在变化,time()函数返回的时间戳也是一直在变化,我们就可以把time()函数的返回值作为srand()函数的参数,这样就可以生成不同的种子。首先我们要生成1-100之间的随机数,我们用rand()函数生成一个随机的数,我们将这个数%100就可以得到一个在0-99之间的数,再加上1就可以得到一个范围在1-100之间的数。rand()函数是根据种子的不同来生成不同的数,所以这就是为什么说rand()函数生成的随机数是伪随机数了。,这样rand()函数生成的随机数就会不同。用if语句来进行判断。

2024-10-31 22:13:31 1168

原创 生成100~200之间的素数

进入第一个for循环i = 100,进入第二个for循环j = 2,开始执行第二个for循环的if语句 100 % 2 == 0.这个表达式的结果为True(真),所以100不是素数,此时我们把flag赋值0.用来表示这个素不是素数,并用break跳出第二个for循环。原理是,一个数若能写成两个因子相乘,那么这两个因子其中一个会小等于这个数的平方根,另一个数会大等于这个数的平方根。然后在进行是否能被整除的那一步其实不用生成2 ~(i- 1),只需要生成2 ~i的平方根。:只能被1和自身整除的数为素数。

2024-10-30 13:24:35 517 1

原创 C语言扫雷9*9,10个雷,简单版

/调用函数//注意,单个字符是单引号int x = 0;int y = 0;;//开始排查雷elseprintf("非法输入\n");可以理解成字符’0’代表48,字符’1’代表49。int x = 0;int y = 0;printf("请输入坐标:");win++;elseprintf("很遗憾,游戏失败\n");break;elseprintf("非法输入\n");////////////////这里这里,看见了吗。

2024-05-08 21:37:29 785 2

原创 C语言分支与循环学习总结

满足条件,开始第一次循环,打印“我是猪”,然后执行i++;先从表达式中得到一个结果,用这个结果和case中的常量表达式进行对比,若相同则执行语句,不相同则继续对比。此时 i = 5,与循环条件i < 5 进行判断,不满足循环条件,此时退出循环。这里的表达式时1,为真,则进行循环。由于a < b.为1 < 100.为真,则执行if里的语句,打印“我是猪”。由于这里的a > b是, 1 > 100,为假,则不执行if里的语句。首先判断条件是否为真,此时括号里的值为0,为假,即不会进行循环。

2024-04-14 20:20:47 1454

空空如也

空空如也

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

TA关注的人

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