- 博客(20)
- 收藏
- 关注
原创 Pytorch框架下的深度学习------3(线性回归原理及实现)
【代码】Pytorch框架下的深度学习------3(线性回归原理及实现)
2024-04-04 21:32:39
224
1
原创 C语言------合并两个有序链表
解题思路:创建结构体指针变量head,tail,用来构建逻辑上的新链表。将list1,list2,中的第一组节点的值进行比较,将较小的值尾插进入新链表,并将较小值所对应的链表list向后移动一个节点,重复进行操作直到list(1or2)==NULL。
2023-10-20 20:21:29
187
1
原创 C语言------寻找链表中倒数第K个节点
方法二:定义slow,fast指针变量。先将fast变量挪到第K个节点处,之后再将slow,fast放入循环,使得循环每次将slow和fast往后挪动一个节点,结束的条件是fast==NULL。从上述方法中,我们可以看出来,虽然时间复杂度都是O(n),但是方法二只遍历了一次链表更加高效。以下给出方法二的解题过程和代码。方法一:遍历链表,得到链表的大小后,从头节点开始寻找第N-K个节点就是倒数第K个节点。
2023-10-20 17:11:44
1061
1
原创 C语言------寻找链表中间节点
解题思路:设置slow,fast两个结构体指针变量,slow每往后挪动一个节点,fast往后挪动两个节点,当fast==NULL || fast->next==NULL 时,slow所指向的节点就是中间节点。
2023-10-20 16:25:46
225
1
原创 C语言------翻转链表
方法一:通过遍历链表确定链表的长度,保持原链表的next不变,对val进行倒序排放。不难发现方法一的时间复杂度为O(n^2)而方法二仅为O(n),但方法二较为难想到。方法二:巧妙利用指针。定义prev,cur变量,通过调用指针的指向来完成逆序。题目选自力扣,翻转链表。
2023-10-19 22:05:41
140
原创 C语言------单向链表删除特定值
2.从逻辑上建立新的链表(实质上并没有新创建链表,只是将原链表中非目标节点重新链接起来),建立newhead,tail,cur变量,其中newhead,tail分别模拟xin链表中的头和尾,利用cur遍历原链表,将非目标节点放入新链表中。1:遍历链表,保存当前节点的地址(list)以及当前节点的上一个节点的地址(prevpos),在遇到待删节点时,令prevpos->next=list->next;
2023-10-18 21:40:05
396
1
原创 动态内存管理------malloc,realloc,calloc的使用
·在使用C语言编程的过程中,常常会遇到一个问题,往往很难把握到底开辟多大内存用来存放数据。如果开辟的过大会造成内存浪费,开辟的太小又会导致内存不足以存储数据。根据这个问题便引申出了动态开辟内存的概念,与之对应的函数为malloc()和realloc()。
2023-09-22 21:28:05
109
1
原创 用C语言做一个通讯录竟然这么简单!保姆级教学来啦!
本文章将带你从0开始,用C语言自己编写出一个具有增删改查功能的通讯录。本文只考虑大部分情况,对于细枝末节的特殊情况,您可以根据自己的需要进行补充,不影响整体功能的实现。
2023-08-29 13:34:31
594
5
原创 结构体,枚举,联合体原来还有这么多知识点!差点就错过了!!!
在开始饭分析结构体,枚举,联合体之前,我们不妨先来思考一下,他们在C语言中是什么?从我的理解来看,他们其实是类型,与int,char等一样,在C语言中扮演类型的角色,这些类型不像是我们常用的整型一类,在创建变量时只能创建所对应的类型,如结构体和联合体,是普通类型的结合体。目录1.结构体 1.1初始化结构体1.2结构体传参1.3结构体内存对齐2.枚举2.1枚举类型的定义2.2枚举的应用2.3枚举的优点3.位段3.1
2023-08-25 12:34:36
205
14
原创 字符(串)函数这么多,总有你用的上的吧!一篇带你搞定常用字符(串)函数
str为待分割的字符串,其中包含非数字,字母的字符(如果没有,那么就无法进行分割);若str为NULL时,从之前记录的位置出发,继续寻找下一个分割字符,并返回下一个分割字符的位置,直到找到\0返回空指针。将source所指的字符串数组拷贝一份到destination中,以’\0‘为结束标志,返回destination的地址。isspace 空白字符:空格‘ ’,换页‘\f’,换行'\n',回车‘\r’,制表符'\t'或者垂直制表符'\v'在str1中寻找str2,返回str1中出现str2的地址。
2023-08-14 21:39:57
2042
10
原创 还搞不清楚数组地址,数组首元素地址和指针的关系?一篇带你从入门到精通
在C语言编程学习过程中,不少老铁会特别头大这个数组和指针之间的关系。例如arr[],这个arr一会又是代表数组首元素地址,一会又是代表数组地址,甚至有的老铁还会疑惑,啥是数组地址呀!??那么这篇文章将会带你彻底搞懂这二者之间的关系。
2023-08-11 20:41:18
4081
6
原创 什么!排序竟然能直接调用函数------qsort()函数的原理和使用说明
我们在日常的编程过程中,往往会有一个疑问。我们通常在封装好一个排序函数后,可实现的功能便固定了,如,我们封装一个对int arr[]进行排列的函数,那么它能实现的功能就仅仅只能对int类型的数组进行排序,对于char,float,struct类型的数组就束手无策了。我们不禁会想,是否存在一个函数,既能省去编写排序函数的步骤,又能够可以对不同类型的数组进行排序?事实上,确实存在这么一个函数------qsort()。qsort()是基于快速排序法而封装的一个可以对各种类型数组进行排序的函数。
2023-08-10 15:10:34
253
10
原创 C语言------扫雷(循序渐进法教学)
扫雷作为一款大众益智游戏,上手容易,但很多人没有具体了解过这个游戏的游戏规则。小时候一般打开这个游戏就乱点一通,直到点到雷,看到雷全都爆出来然后默默的点下一把......那么这款游戏的游戏规则到底是什么呢?下面我将进行简要介绍:游戏界面:扫雷根据难度提升,界面大小也会变大,例如简单版为9*9,一般18*18,困难36*36。雷的数量可以随机也可以是固定。雷:以9*9为例,在此界面中藏有10个雷,如果我们点到雷则游戏失败,未点到雷则继续,直到点完所有的非雷格子。
2023-08-06 14:24:40
222
2
原创 C语言------数据在内存中的储存(整型)
指数据的高位保存在内存的低地址中,低位保存在内存的高地址中(以字节为单位)。转换为补码后,我们为了方便阅读将其转换为16进制(内存中也显示为16进制)fffffffb,如果按照大端存储模式,我们在内存监视中应该读取到的顺序即为fffffffb(从左至右地址增高);直接对数值进行二进制转换,如果为无符号变量,则无符号位,有符号变量,最高位为符号位,0为正,1为负。值数据的高位保存在内存的高地址中,低位保存在内存的低地址中(以字节为单位)。由此可知,小编的编译器是按照小端存储模式进行数据储存的。
2023-08-03 13:21:16
245
3
原创 C语言------数据在内存中的存储(浮点型)
S分配1bit位,E分配8bit位,M分配23bit位。事实上,前文提到过,E的取值范围为(0,255),如果n=0.5,则E=-1,那么数据就无法进行储存了,显然这是荒谬的,所以,我们在进行数据储存时,无论E'是否大于0,都要加上中间值127,即E=E'+127,最终结果便符合下图内存显示。64位浮点型数据中S分配1bit位,E分配11位比特位,M分配52位bit位,与32位相同M只储存小数点后的数据,且E的范围扩大至(0,2047),在储存E的数据时加中间值1023。此段代码的运行结果是什么呢?
2023-08-02 19:34:52
206
7
原创 C语言中如何制作及使用非开源代码
在使用计算机语言进行一个工程制作时,往往需要很多程序员协同操作,各自负责自己的模块程序编写,在整个团队将程序编写完成后(.c文件)直接纳入同意工程下,在主函数中声明外部文件即可在对应的部分使用每个模块的程序。6.此时生成一个非开源代码就完成了,分享代码时只需要给别人.h和.lib文件,其他人就可以使用编写的.c文件,但对方无法查询到你的.c文件的具体内容。7.进入到主程序,右击主函数的.c文件,打开所在的文件夹,将需要调用的.c和.h文件复制进入该文件夹。2编写.h文件,文件作用为声明.c文件。
2023-05-21 20:58:15
455
2
原创 嵌入式学习开端记录及自我目标设定
我认为对操作系统的学习不能是阶段性的,必须是贯穿我整个研究生生涯的,操作系统的熟练程度一定是日积月累的,所以,在学习C/C++的过程中可以适当的接触该操作系统并掌握一些基础的命令语句,在一年半之内能够完全掌握Linux操作系统和C/C++之间对于嵌入式系统之间的联系,做到得心应手。就目前学习进度来看,我初步设定的目标为,三个月之内对C语言整体语言知识结构有较为深入的认识,五个月之内对C语言达到精通的水准,中间参杂刷题计划等深入学习后再制定目标。期待学有所成,能进入理想的企业。
2023-05-09 22:47:44
193
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅