当前位置: 首页 > news >正文

常用的网站制作软件论坛推广软件

常用的网站制作软件,论坛推广软件,网站制作背景,广州网站建设说说外链的建设前言 本篇主要讲解的是qsort函数细节以及运用实例。 紧跟我的脚步一起手撕qsort函数吧~ 欢迎关注​​个人主页:逸狼 更多优质内容: 拿捏c语言指针(上) 拿捏c语言指针(中) 拿捏c语言指针(下&…

前言

本篇主要讲解的是qsort函数细节以及运用实例。

紧跟我的脚步一起手撕qsort函数吧~

欢迎关注​​个人主页:逸狼

更多优质内容:

拿捏c语言指针(上)

拿捏c语言指针(中)

拿捏c语言指针(下)


创造不易,可以点点赞吗~

如有错误,欢迎指出~



qsort函数介绍

qsort 函数可以实现任意数据的排序 

他的底层排序算法是快速排序,对应的头文件是string.h

我们在官网cplusplus中搜索 qsort函数 得到如图 参数 和 compar函数的返回值


参数解释

base

void*  base

base指向要排序数组的第一个元素(起始位置),void*是为了接收不同类型的数据


num

num 的返回类型是size_t 

base指向的数组的元素个数(待排序的数组的元素个数)

size

size 的返回类型是size_t 

base指向的数组的元素的大小(单位是字节)

compar

int (*compar)(const void*p1, const void*p2))函数的返回类型是int,他有两个参数分别是const void*p1const void*p2,void*是为了接收不同类型的数据,return返回时要 强制类型转化 为 被比较的数据的类型。

(*compar)是函数指针,该指针指向的函数是用来比较数组中的2个元素的,p1和p2分别指向两个不同的元素
compar函数是根据实际要比较的数据自己写的

应用qsort实现排序整形

利用qsort实现排序整形数组

//利用qsort实现排序整形数组
#include<stdio.h>
#include<stdlib.h>
int cmp_int(const void*p1,const void *p2)
{return *(int*)p1 - *(int*)p2;//(int*)是强制类型转换为int*类型
}
int main()
{int arr[10] = { 9,4,6,1,0,3,7,2,5,8 };int sz = sizeof(arr) / sizeof(arr[0]);//排序前打印for (int i = 0; i < sz; i++){printf("%d ", arr[i]);}printf("\n");qsort(arr, sz, sizeof(arr[0]), cmp_int);//排序后打印for (int i = 0; i < sz; i++){printf("%d ", arr[i]);}return 0;
}

代码结果

应用qsort实现排序结构体

排年龄

将年龄排成升序

//利用qsort实现排序结构体数据
#include<stdio.h>
#include<stdlib.h>
//定义一个结构体
struct Stu
{char name[20];//名字int age;//年龄
};
//不能直接使用< > ==比较
//
//1.按照年龄比较
int cmp_by_age(const void* p1, const void* p2)
{return ((struct Stu*)p1)->age -((struct Stu*)p2)->age;//      (struct Stu*)代表将p1和p1强制类型转化为结构体指针类型
}
void test()
{struct Stu arr[] = { {"zs",66},{"ls",18},{"ww",35} };int sz = sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(arr[0]), cmp_by_age);
}int main()
{//年龄排成升序test();return 0;
}


调试结果

未排序前


排序完成


排名字

将名字排成升序

//2.按照名字比较
int cmp_by_name(const void* p1, const void* p2)
{return strcmp(((struct Stu*)p1)->name , ((struct Stu*)p2)->name);//      (struct Stu*)代表将p1和p1强制类型转化为结构体指针类型
}
void test()
{struct Stu arr[] = { {"zhangsan",66},{"lisi",18},{"wangwu",35} };int sz = sizeof(arr) / sizeof(arr[0]);qsort(arr, sz, sizeof(arr[0]), cmp_by_name);
}int main()
{//名字排成升序test();return 0;
}

库函数strcmp

其中,比较名字(实际上是比字符串大小)

这里需要运用库函数strcmp(对应的头文件是string.h)比较字符串大小(是按照对应位置上字符的ASCII值的大小比较的)
strcmp的返回值与qsort函数的返回值一致


调试结果

http://www.hkea.cn/news/939575/

相关文章:

  • 电商网站建设实训报告长沙网站seo推广公司
  • 阿里云ecs怎么建网站吉林网站seo
  • 企业营销型网站建设的可行性西安竞价托管
  • 做网站如何适应分辨率网站分析培训班
  • 现在币圈有那些私募网站做的好百度推广账号登陆入口
  • 旅游网站图片营销公司排名
  • 做服务器的网站都有哪些搜狗关键词排名此会zjkwlgs
  • php动态网站开发 唐四薪 答案b站引流推广网站
  • 长沙3天2晚自由行攻略论述搜索引擎优化的具体措施
  • 外汇局网站做结汇申报被逆冬seo课程欺骗了
  • 网站运营配置免费网站在线观看人数在哪直播
  • 什么网站做一手房好系统优化的例子
  • wordpress 插入wordseo排名点击工具
  • 网站推广易网宣seo的主要分析工具
  • 安徽网站定制最大免费广告发布平台
  • 怎么查网站有没有做404公司宣传网页怎么做
  • 靠谱营销网站开发选哪家seo的优点和缺点
  • 企业网站建设论文文献综述百度推广的广告真实可信吗
  • 企业网站优化方式广州最新消息今天
  • 旅游网站开发的意义seo优化方案案例
  • 山东做网站的公司seo数据分析哪些方面
  • 做网站用哪几个端口 比较好百度贴吧官网网页
  • 弹幕网站是怎么做的百度在线翻译
  • 独立网站域名代发关键词包收录
  • 如何建立门户网站百度可以发布广告吗
  • 网站开发毕设文献郑州网站优化顾问
  • 青海建设银行的官方网站自己制作网页的网站
  • 网站建设的图片叠加步骤过程2021年搜索引擎排名
  • 网站链接到邮箱怎么做搜索引擎推广试题
  • 十堰城市建设网站制作自己的网站