
C语言
文章平均质量分 55
大雄是个程序员
这个作者很懒,什么都没留下…
展开
-
C语言与C++的动态内存分配(二)
避免了代码一中的问题,A的参数是二阶指针,传入的参数也是字符串的指针的指针,这样就可以在函数A中改变字符串指针的值了。其中的p[]数组是函数A中的局部变量,函数返回后,p就被释放掉了,str指向了一段无用的内存区域,输出的str会是乱码。假如动态内存没有申请成功,这句就会出现错误,所以在申请动态内存后,应该首先判断是内存否申请成功,然后再使用,以避免错误发生。代码二:其中的p[]数组是函数A中的局部变量,函数返回后,p就被释放掉,str便指向了一段无用的内存区域。另外,没有释放动态申请的内存空间。原创 2023-01-13 11:11:13 · 72 阅读 · 0 评论 -
C语言与C++的动态内存分配(一)
程序在编译、运行等各个过程中,不同性质的数据存放在不同的位置。动态内存是从堆上分配,也叫动态内存分配。程序员自己负责在何时释放内存。动态内存的生存期由程序员决定,使用非常灵活。原创 2023-01-13 11:10:57 · 184 阅读 · 0 评论 -
十大经典排序算法(动态演示+代码)-基数排序
对radix进行计数排序(利用计数排序适用于小范围数的特点)arr为原始数组,从最低位开始取每个位组成radix数组;一种多关键字的排序算法,可用桶排序实现。取得数组中的最大数,并取得位数;原创 2023-01-27 21:05:53 · 174 阅读 · 0 评论 -
十大经典排序算法(动态演示+代码)-桶排序
将值为i的元素放入i号桶,最后依次把桶里的元素倒出来。寻访序列,并且把项目一个一个放到对应的桶子去。从不是空的桶子里把项目再放回原来的序列中。设置一个定量的数组当作空桶子。对每个不是空的桶子进行排序。原创 2023-01-27 21:05:42 · 318 阅读 · 0 评论 -
十大经典排序算法(动态演示+代码)-计数排序
如果 k(待排数组的最大值) 过大则会引起较大的空间复杂度,一般是用来排序 0 到 100 之间的数字的最好的算法,但是它不适合按字母顺序排序人名。向填充目标数组:将每个元素 i 放在新数组的第 C[i] 项,每放一个元素就将 C[i] 减去 1;计数排序统计小于等于该元素值的元素的个数i,于是该元素就放在目标数组的索引i位(i≥0)。计数排序基于一个假设,待排序数列的所有数均为整数,且出现在(0,k)的区间之内。统计数组中每个值为 i 的元素出现的次数,存入数组 C 的第 i 项;原创 2023-01-26 07:31:21 · 163 阅读 · 0 评论 -
十大经典排序算法(动态演示+代码)-归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。:1.把长度为n的输入序列分成两个长度为n/2的子序列;2. 对这两个子序列分别采用归并排序;3. 将两个排序好的子序列合并成一个最终的排序序列。归并排序动图演示。原创 2023-01-26 07:31:09 · 201 阅读 · 0 评论 -
十大经典排序算法(动态演示+代码)-堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。将初始待排序关键字序列(R1,R2….Rn)构建成大顶堆,此堆为初始的无序区;将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,……Rn-1)和新的有序区(Rn),且满足R[1,2…n-1]原创 2023-01-25 08:23:25 · 2823 阅读 · 0 评论 -
十大经典排序算法(动态演示+代码)-快速排序与希尔排序
选取第一个数为基准将比基准小的数交换到前面,比基准大的数交换到后面对左右区间重复第二步,直到各区间只有一个数快速排序动图演示。原创 2023-01-24 23:04:48 · 871 阅读 · 0 评论 -
十大经典排序算法(动态演示+代码)-选择排序与插入排序
在未排序序列中找到最小(大)元素,存放到排序序列的起始位置从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾以此类推,直到所有元素均排序完毕选择排序动图演示。原创 2023-01-25 08:23:09 · 817 阅读 · 0 评论 -
十大经典排序算法(动态演示+代码)-冒泡算法
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。如果第一个比第二个大,就交换他们两个。针对所有的元素重复以上的步骤,除了最后一个。原创 2023-01-24 23:04:50 · 1577 阅读 · 0 评论 -
C语言基础知识总结大全(六)
共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。原创 2023-01-23 12:16:59 · 1659 阅读 · 0 评论 -
C语言基础知识总结大全(五)
19.结构体C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:Title Author Subject Book ID定义结构为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:struct tag { member-list原创 2023-01-23 12:16:44 · 1244 阅读 · 0 评论 -
C语言基础知识总结大全(四)
冒泡排序的思想:相邻元素两两比较,将较大的数字放在后面,直到将所有数字全部排序。数据类型 数组名称[常量表达式1]...[常量表达式n];注意:多维数组的每一维下标均不能越界!原创 2023-01-22 17:45:13 · 2138 阅读 · 0 评论 -
C语言基础知识总结大全(三)
C语言规定,在没有指定函数的作用范围时,系统会默认认为是外部函数,因此当需要定义外部函数时extern也可以省略。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;局部静态变量不能定义为寄存器变量。这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern);原创 2023-01-22 17:44:51 · 801 阅读 · 0 评论 -
C语言基础知识总结大全(二)
void函数中可以有执行代码块,但是不能有返回值,另void函数中如果有return语句,该语句只能起到结束函数运行的功能。其格式为:return;形参:形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数;实参:实参是在调用时传递该函数的参数。原创 2023-01-21 17:41:13 · 77 阅读 · 0 评论 -
初学者C语言练习题-文件
初学者C语言练习题-结构体原创 2023-01-20 16:56:00 · 271 阅读 · 0 评论 -
初学者C语言练习题-结构体
2、把初始代码中的结构数组作为参数传递给函数print,并在函数中打印出结构体数组的内容;1、输入3个学生的学号,姓名,成绩,按照成绩降序排列。原创 2023-01-20 16:55:50 · 1486 阅读 · 0 评论 -
初学者C语言练习题-指针
4、输入5个数据,调用move函数,使得其前面各数顺序向后移动3位;5、让指针1指向最大值,2指向最小值,依次输出。3、调用reverse函数按输入时顺序输出。1、给定一个字符串,求最后一个单词长度;2、将两个字符串进行连接;原创 2023-01-18 09:24:34 · 579 阅读 · 0 评论 -
初学者C语言练习题-数组
1、10个人围圈报数,从第一个人开始,报道n的人出局,下一个人从1开始报数,直到所有的人出局,求顺序。2、数列a[8]+b[9],从小到大排序输出b[9]3、给n个员工发工资,计算多少张人名币不必找零。6、求在数组中出现次数最多的数。4、二维数组求最大值。原创 2023-01-19 09:14:09 · 1354 阅读 · 0 评论 -
初学者C语言练习题-函数
1、有三座塔,ABC,开始时A上有n 个盘子,大小不等,大在上,小在下,要将盘子从A移到C座,每此只能移一个,输入盘子的数量,输出移动的步骤,利用递归完成?6、给定俩个正整数m,n,求最小公约数。4、输入正整数,转化为二进制输出。2、求取斐波那契数列的第n项?5、返回number逆序数。3、利用递归函数求n!原创 2023-01-19 09:13:56 · 1269 阅读 · 0 评论 -
初学者C语言练习题-入门
初学者C语言练习题,刚入门的同学赶快上手练练原创 2023-01-18 09:24:14 · 502 阅读 · 0 评论