龙空技术网

C语言结构体排序讲解! 还不会的同学赶紧收藏!#排序算法

程序员小阿狸吖 71

前言:

此刻看官们对“c语言排序姓名”大体比较关注,咱们都想要知道一些“c语言排序姓名”的相关资讯。那么小编同时在网摘上搜集了一些关于“c语言排序姓名””的相关知识,希望我们能喜欢,我们一起来了解一下吧!

C语言结构体排序讲解。

刚入行的同学一定要收藏好。

·首先声明一个Student结构体,这个结构体有学号id、姓名name、年龄age。

·然后在主函数里定义了Student结构体类型数组变量stu,并且在17行到19行写了三个学生对应的信息。第一列是学号,第二列是姓名,第三列是年龄。各位同学现在可以看到你们家子涵学号是13,却在数组里最后一个。没错,下面就是要按照学号值从小到大将这个数组排序。

·第22行是用sizeof来计算Student里有多少个学生的,像我这样除一下,count值就是stu长度,就是3。因为要用到qsort来排序,所以第二行要写上stdlib.h头文件。

·接着来看一下23行代码,qsort首先第一个参数传入要排序的数组,所以传入stu数组。第二个参数是要对多少个元素进行排序,所以直接传入count。第三个参数传入类型所占多少个字节,所以直接用sizeof来算一下Student就可以了。第四个参数传入要制定排序规则的函数,所以直接传入sort。

可以看到这个函数在第10行,qsort不知道自定义规则函数是什么意思的建议看我合集第41集。这里写法是固定的,和41集相比,把11行红色框当成整体,用a.id-b.id,gsort就会将数组按id从小到大排序了,相反它俩调换位置就会按id从大到小调换位置。

·最后用for循环来遍历一下stu结构体,编译运行,可以看到你们家子涵排在第一了。

是不是非常简单?

标签: #c语言排序姓名 #c语言给名字排序 #c语言结构体定义为什么在主函数前面 #结构体排序 c语言 #c语言按字母给姓名排序