- 博客(19)
- 收藏
- 关注
原创 C语言学习记录--深入理解指针(5)(qsort的练习)
qsort 就是 quick sort,也就是“快速排序”,意思就是说qsort就是一个排序函数,和之前写的冒泡排序不同,冒泡排序只能排序整型数据,而qsort可以排序任意类型的数据。假设我们有一个学生结构体,包含姓名和成绩信息,现在要按成绩从高到低对学生进行排序,代码如下:。当我们学会了冒泡排序后,发现它只能排序整型数据,那么有办法让冒泡排序算法(Bubble_sort)也能够排序任意类型的数据吗?返回大于0的数(1)和小于0的数(-1)来比较元素大小,1.要排序的数组的首元素指针(即数组名)。
2025-05-16 11:47:03
994
原创 C语言学习记录——深入理解指针(4)
所以,根据数组名是数组⾸元素的地址这个规则,⼆维数组的数组名表⽰的就是第⼀⾏的地址,是⼀ 维数组的地址。根据上⾯的例⼦,第⼀⾏的⼀维数组的类型就是 int [5] ,所以第⼀⾏的地址的类 型就是数组指针类型 int(*)[5]。那就意味着⼆维数组传参本质上也是传递了地址,传递的是第⼀ ⾏这个⼀维数组的地址,那么形参也是可以写成指针形式的。那么什么是函数指针变量呢?根据前⾯学习整型指针,数组指针的时候,我们的类⽐关系,我们不难得出结论: 函数指针变量应该是⽤来存放函数地址的,未来通过地址能够调⽤函数的。
2025-05-11 11:19:26
1395
1
原创 C语言学习记录--深入理解指针(1)
正文开始正文开始在计算机中每个内存单元都有⼀个编号(这个编号就相当 于宿舍房间的⻔牌号),有了这个内存单元的编 号,CPU就可以快速找到⼀个内存空间。,在计算机中我们 把内存单元的编号也称为地址指针内存单元的编号 == 地址 == 指针2.指针变量和地址2.1 取地址操作符(&)这个整形“a”有下面4个字节。⽐如,上述的代码就是创建了整型变量a,内存中 申请4个字节,⽤于存放整数10,其中每个字节都 有地址,上图中4个字节的地址分别是:0x006FFD700x006FFD71。
2025-04-29 21:20:26
930
1
原创 数据结构--时间复杂度
例如,如果一个算法的执行次数与数据规模 n 的关系为\(3n^2 + 2n + 1\),当 n 足够大时,\(n^2\)这一项对执行次数的影响远远超过其他项,所以该算法的时间复杂度表示为\(O(n^2)\)。冒泡排序的外层循环执行 n - 1 次,对于外层循环的每一次,内层循环的执行次数也与 n 相关,整体的操作次数约为\(n^2\)量级,因此时间复杂度为\(O(n^2)\)。如果算法的执行次数与数据规模 n 成正比,即随着 n 的增加,执行次数线性增长,那么时间复杂度为\(O(n)\)。
2025-04-26 22:21:41
564
1
原创 C语言学习记录——函数递归
在正文开始之前,我想问问各位有没有看过美国的一部科幻电影《盗梦空间》呢? 如果看过,请你回忆一下里面的梦境分层情节,主角团们将目标人物的梦境一层一层地递推下去,最后再一层一层慢慢回归现实,这就类似我们今天要讲的 函数递归。正⽂开始递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢? 递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。我写一个最简单的递归代码出来看看吧各位想想,这个程序如果没有调用main(),那么很明显只打印一个hello,world,但调用了之后呢?答案就是不停地
2025-04-23 21:38:32
414
1
原创 C语言学习记录——扫雷游戏
我也不能保证能够把写它的过程完全在博客展示出来,但还是想来分享一下我的“苦难”。说起来它确实是一个简单的扫雷游戏,因为跟正宗的扫雷游戏比起来实在是太简陋了,但写起来是真不轻松,对我来说甚至可以是折磨,需要的知识点仅仅是。函数用于计算指定位置周围雷的数量,通过遍历周围的 8 个位置(包括自身),将字符转换为数字并求和。:用于初始化棋盘,将棋盘的每个位置设置为指定的字符(如初始化隐藏棋盘为。如果你问棋盘是什么,我只能说它是扫雷的棋盘好吧。这是主函数,我就不具体说了,很简单易懂;这就是运行出来的棋盘。
2025-04-22 22:12:46
626
1
原创 猜数字游戏2.0
整个程序由多个函数协同工作,主要包括menu函数用于展示游戏菜单、punishment函数实现惩罚机制、game1函数对应困难模式游戏逻辑、game2函数对应普通模式游戏逻辑,以及main函数作为程序的入口,负责控制游戏流程和模式选择。游戏运行时,首先会展示菜单,玩家可以选择普通模式(无限次数)、困难模式(仅有 5 次机会,失败会触发惩罚),或者输入其他数字退出游戏。选择模式后进入相应的游戏逻辑,游戏结束后还可以选择是否继续游戏.printf(" 猜数字游戏 \n");
2025-04-18 20:07:04
696
1
原创 大学一年总结与规划
我继续学着C语言,但没有了目标,也就慢慢松懈了下来,在12月份时,我一时兴起花了300元去报名了第十六届蓝桥杯比赛,想着能够鞭策自己学习,然而事实是自己的惰性更强一点,我玩了几乎一整个寒假也没有学习,这里开学过后课程也变多了,学得更慢,这不,后天蓝桥杯就开始了,我完全就是去当炮灰的,我现在的实力远远不够参赛。是的,虽然后来生活上没变,但我的精神上已经感觉不到刚开始那种快乐了,甚至有点怀念高中的生活(不过我知道,我吃不了复读的哭,也承受不了复读的压力,高考533分,可惜连一本线都差六分,四川实在是太卷了)。
2025-04-10 19:15:59
538
1
原创 C语言入门学习记录(9)---初识一维数组
例如,对于上面的numbers数组,numbers[2]就表示访问数组中的第三个元素。回顾本文重点,包括数组的定义,初始化,访问等场景,再次强调数组在C语言编程中的重要性,鼓励读者继续深入学习数组的进阶知识,如动态数组,多维数组的复杂应用等。随着C语言的学习深入,我们有事需要对数据进行组织与管理,今天,我们要探索的 C 语言数组,正是一种强大的数据组织工具。我在学数组的时候感觉是基础中最困难的知识点,后面一直到指针才受到阻力,所以,需要多多练习,多敲代码,这样会越来越好。访问数组的核心:控制下标。
2025-04-08 17:37:45
696
1
原创 C语言入门学习记录(8)---初步了解操作符
操作符虽小,却在编程中扮演着关键角色。通过对各类操作符的学习,我们能更好地理解代码的执行逻辑,编写出更高效、准确的程序。希望大家在后续编程实践中,能熟练运用操作符,解锁更多编程技能。
2025-04-07 21:06:39
498
1
原创 C语言入门学习记录(7)---猜数字小游戏
猜数字游戏是一种经典的小游戏,规则简单但充满趣味。计算机会随机生成一个数字(比如1-100之间),玩家需要通过不断猜测,并根据计算机给出的"猜大了"或"猜小了"的提示,逐步缩小范围,最终猜中目标数字。我想说到这里学的C语言还是很基础的,要从很后面的指针才开始进阶,不过这也是后话了,我想的是做好当下就好,虽然也没多好,就比如我这个代码肯定也是有很多问题的,欢迎大家来帮我支出或者提出1改进建议。这个小游戏有助于新手(学到循环)更好地理解C语言,代码我在评论区也放一份。这个游戏虽然简单,但涉及。
2025-04-07 12:46:33
577
2
原创 C语言入门学习记录(6)---break和coutinue
为什么需要break和continue?为什么需要break和continue?在我们使用循环的时候,突然想在某个时候停止循环的话该怎么办呢,或者是想跳过某一个步骤继续执行程序又该怎么办呢?在编程中,循环(forwhiledo-while)是我们最常用的结构之一。(比如找到了目标数据,没必要继续执行)。,但继续执行下一次(比如遇到无效数据时忽略,继续处理后面的数据)。这时候,breakcontinue就派上用场了!break:立即终止当前所在的循环(或switch。
2025-04-01 22:15:14
454
4
原创 C语言入门的学习记录(5)---循环的艺术(介绍三种循环)
众所周知,生活中最不缺的现象就是循环。do---while循环使用的频率相比与前两种循环都来说要低一些。循环 + 条件判断 = 智能自动化(如“遇到异常重试3次”)。场景:统计1000名学生的平均分、筛选日志中的错误记录。:同一套工序重复处理不同原料,快速产出成品。:每秒移动一格,60次后归零,开启下一分钟。:没有循环时,打印1到100需要写100行。:自然的循环,周而复始,无需人为干预。1. 引言:循环——效率的隐形引擎。1. 引言:循环——效率的隐形引擎。循环搞定,代码干净且易维护。
2025-03-31 21:37:29
418
1
原创 C语言入门学习记录(3)——从零开始掌握C语言的数据类型与变量“
在编程的世界里,数据类型和变量如同建筑中的砖块和钢筋,构成了所有程序的基础结构。它们是程序员与计算机沟通的基本语言单元,决定了信息如何被存储、处理和传递。 数据类型定义了信息的性质和操作方式:规定了数据的存储空间大小(如int通常占4字节)决定了数据的表示范围(如char可表示-128到127)明确了允许的操作(如整数可进行模运算,浮点数则不行) 变量则是程序中数据的具名容器:为内存空间赋予有意义的名称在程序运行期间保存和反映状态变化使抽象算法能操作具体数据 C语言的数据类型大致可分为三种整数类
2025-03-30 16:27:26
539
1
原创 C语言入门学习记录(2)---scanf与printf
这里name不需要取地址操作,因为%s代表name,表示字符串,字符串读取不需要取地址操作。这个函数是C语言对我们“说话”的麦克风,它能够输出字符串,从简单的整数到复杂的浮点数都能输出,它的使用频率仅仅次于基础的赋值语句。则是程序感知世界的传感器,虽然现代C++提倡使用更安全的I/O方式,但在嵌入式系统、算法竞赛和许多遗留系统中,这两个是我遇到最多的问题,但还有其他问题,就不一一例举了。
2025-03-29 23:11:50
411
1
原创 C语言入门的学习记录(1)
这里是真的是我要开始自己写的内容了。所以理所当然的认为我学C语言只是课程所迫,其实我在大一上册就开始学了,原因嘛,其一是学校机器人社团招新需要我们学C语言,其二呢是我在高中就听说过C语言,对其有一种“神性”的向往,恰好这次招新想让我了解一下这门一直在我内心“传说般”的技术,于是在这两种机缘巧合(不知道这词语对不对,我语文不太好)下,我在b站开始了C语言的编程之路。了解C语言的意义后我明白了C语言只是一个开始,它是编程的基础并不能代表整个编程,我明白了后面还有很长的路要走,理所当然也就有了编程的目标。
2025-03-29 09:49:06
476
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人