C语言qsort的三种使用

2023-05-16

1.结构体的qsort

#include<stdlib.h>
#include<stdio.h>
struct _block{
  int att1;
  int att2;    
};
int cmp(const void *a, const void *b)
{
  int  aa = ((_block *)a)->att1;
  int bb = ((_block *) b)->att1;
  return aa>bb;  //与所排序反向 
}
int main()
{
  int n;
  _block b[3];
  b[0].att1= 3; b[0].att2=3;
  b[1].att1 =8; b[1].att2=8;
  b[2].att1 = 5; b[2].att2=5;
  qsort(b, 3, sizeof(_block), cmp);
  for (n=0; n<3; n++){
     printf("%d  %d\n", b[n].att1, b[n].att2);
  }
  return 0;
}
2.整形的qsort

#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
	return *(int *)a-*(int *)b;
}
int main()
{
	int i,a[10];	
	for(i=0;i<10;i++)
		scanf("%d",&a[i]);
	qsort(a,10,sizeof(int),cmp);
	for(i=0;i<10;i++)
	{
		printf(i==9?"%d\n":"%d ",a[i]);
	}
	return 0;
}
3.字符串qsort

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s[2001][1001];
int cmp(const void *a, const void *b){
	return strcmp((char *)a,(char *)b);
}
int main(){
	int i,n;
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;i++) gets(s[i]);
		qsort(s,n,1001*sizeof(char),cmp);
	for(i=0;i<n;i++) puts(s[i]);
	return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言qsort的三种使用 的相关文章

  • 浅谈C/C++排序函数中cmp()比较函数的写法(qsort sort函数)

    转自 http blog csdn net lionel d article details 41746135 首先 xff0c 我们来谈谈大名鼎鼎的void qsort void base int nelem int width int
  • 指向常数的“万能”指针:const void*在qsort的应用

    qsort函数 函数的原型 xff1a void qsort void base size t num int comparator const void const void 参数解释 xff1a 很简单理解 xff0c 第一个参数就是待
  • C语言qsort的三种使用

    1 结构体的qsort include lt stdlib h gt include lt stdio h gt struct block int att1 int att2 int cmp const void a const void
  • qsort的使用

    一 了解qsort xff08 1 xff09 编译器函数库万能数组排序函数排序函数 它是基于快速排序算法 xff0c 所以是q sort q 指的是 quick 快速 qsort 的函数原型是 void qsort void base s
  • 在 C 中使用 qsort 对字符数组进行排序

    我正在尝试使用qsort对字符数组进行排序 我不明白为什么这不起作用 我有一个指向比较函数的指针man页指定 有人可以告诉我出了什么问题吗 谢谢 我的代码 include
  • 如何在 C 中对指向 char 的指针数组进行 qsort?

    假设我有一个指向 C 中 char 的指针数组 char data 5 boda cydo washington dc obama 我希望使用 qsort 对该数组进行排序 qsort data 5 sizeof char compare
  • qsort 函数比较让我困惑

    我看到很多人在 qsort 比较器函数中使用减法 我认为这是错误的 因为在处理这些数字时 int nums 2147483648 1 2 3 INT MIN 2147483648 int compare const void a const
  • stdlib的qsort是递归的吗?

    我读过qsort只是一种通用排序 不承诺实施 我不知道库在不同平台上有何不同 但假设 Mac OS X 和 Linux 实现大致相似 are the qsort递归实现和 或需要大量堆栈 我有一个大数组 数十万个元素 我想对它进行排序 而不
  • 需要帮助将 qsort 与结构数组一起使用

    现在 我看到了各种例子 但我不明白它们的意思 这是我的结构 typedef struct profile char gender 1 double soc PROFILE 其中 soc 是我要排序的社会安全号码 我知道你需要一个比较函数 但
  • qsort 给出 [错误]:从 `int (*)(cricketer*, cricketer*)' 到 `int (*)(const void*, const void*)' 的无效转换

    这是代码 它按平均跑数对板球运动员的数据进行排序 这qsort函数显示错误 错误 C Users Encoder Documents C Free Temp Untitled3 cpp 29 错误 无效的转换int cricketer cr
  • 如何从 stdlib 编写 qsort 的比较函数?

    我有一个结构 struct pkt double x double y double alfa double r kw typedef struct pkt pkt 这些结构的表格 pkt tab pkt tab pkt malloc il
  • 使用 qsort 对 2D 数组进行排序

    我正在尝试对二维数组进行排序 首先我按列排序 然后按行排序 逐列有效 但逐行无效 这段代码有什么问题 int scmpr const void a const void b return strcmp const char a const
  • 为 qsort 的结构编写比较函数?

    我在编写比较函数时遇到问题qsortC 中的函数 这是我目前拥有的 int cmpfunc const void a const void b return Individual a gt fitness Individual b gt f
  • 转换函数指针

    我正在编写一个函数 它接收一个指向比较函数的指针和一个数组MyStructs并应该根据比较函数对数组进行排序 void myStructSort struct MyStruct arr int size int comp const str
  • 如何为二维数组的 qsort 编写比较器函数?

    我有一个 n 2 大小的数组 我想根据第二列的值使用 qsort 对它们进行排序 include
  • 对数组 C 进行部分排序

    我有一个如下所示的数组 int array 4 53 3 65 7 43 9 54 0 72 0 0 我只是想知道我可以使用什么方法对该数组进行部分排序 以将前三个最大的双精度数放在前面 我正在寻找最有效的方法来获取该数组中前三个最高的数字
  • c 中 qsort() 函数中的 cmpfunc

    有人可以解释一下吗cmpfunc这是用在qsort功能 什么是a and b在这个函数中 它们指向什么 int cmpfunc const void a const void b return int a int b a and b in
  • 解释一下c中qsort()函数的类型转换? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 1 在这段代码中pLhs and pRhs指向某个随机内存位置 那么如何将该随机内存位置的内容复制到 LHS 指向的位置 2 解释使用的比较
  • 对 Qsort 和指针感到困惑

    我是一名 C 初学者程序员 想要习惯术语和指针 我在寻找对数值数组元素进行排序的方法时发现了以下工作函数原型 该函数是 qsort 它使用指针 现在我的理解是 const 一词确保值 a 和 b 不变 但指针不变 如果我在这里错了 请纠正我
  • 如何在 C++ 中对字符串使用 qsort

    我想使用 qsort 函数使用 C 对字符串中的字符进行排序 include

随机推荐

  • git lfs 的使用

    安装 curl s https packagecloud io install repositories github git lfs script deb sh sudo bashsudo apt get install git lfsg
  • 李诗雨的2016

    不诗意的女程序猿不是好厨师 xff0c 大家好 xff0c 我是李诗雨 xff5e 首先 xff0c 要先向各位道个歉 xff0c 其实我也是在csdn上刚拿到 暂住证 的新人 所以有好多功能还不知道 xff0c 今天在手机app上才看到有
  • 使用barrier共享键鼠

    1 安装flatpak 1 1 ubuntu 18及以后 sudo apt install flatpak 1 2 ubuntu18 以前 sudo add apt repository ppa flatpak stablesudo apt
  • OpenCV中访问图像中像素的三种方法

    1 用指针访问像素元 用指针访问像素的这种方法利用的是C语言中的操作符 xff0c 这种方法最快 如 xff1a cv Mat image span class hljs number 100 span span class hljs nu
  • 目标跟踪方法总结

    1 数据集 1 1 OTB 最经典的benchmark xff0c 有2013的OTB50和2015的OTB100OTB包括25 的灰度序列 xff0c 分辨率相对较低http cvlab hanyang ac kr tracker ben
  • SiamFC:基于全卷积孪生网络的目标跟踪算法

    Abstract 本论文提出一种新的全卷积孪生网络作为基本的跟踪算法 xff0c 这个网络在ILSVRC15的目标跟踪视频数据集上进行端到端的训练 我们的跟踪器在帧率上超过了实时性要求 xff0c 尽管它非常简单 xff0c 但在多个ben
  • fusion的理解

    fusion 有很多种模式 xff0c 开始没明白 现在知道fusion 后然后采样 取平均 xff0c 然后恍然大悟
  • rk3288 buildroot 系统编译移植libcurl

    支持https configure prefix 61 pwd buildout host 61 arm buildroot linux CC 61 home gttest work RKLINUX rk3288 v linux build
  • ROS2中IMU话题的发布及可视化

    环境 xff1a Ubuntu 20 04 xff0c ROS2 Foxy 传感器 xff1a 维特智能BWT901CL 代码是从维特智能的示例代码修改的 xff0c 实现基本的加速度 角速度和角度读取 xff0c 发布IMU消息 这个传感
  • vue-admin/vue-element-admin 自动生成表单,数据提交,组件传值

    父组件 xff08 基于element UI xff09 xff1a 弹出层 lt dialogBar dialogData 61 34 dialogData 34 v if 61 34 showUpdateDiaLog 34 64 han
  • 美团2018春招笔试题

    任意一个正整数可以用字符 0 9 表示出来 但是当这些字符每种字符数量有限时 xff0c 可能有些正整数表示不出来 比如有两个 1 xff0c 一个 2 xff0c 能表示出11 12 112等等 xff0c 但是无法表示出10 122 2
  • 如何使用火狐浏览器的Poster插件进行post请求

    不诗意的女程序猿不是好厨师 转载请注明出处 xff1a From 李诗雨 http blog csdn net cjm2484836553 article details 72453907 善假于物者 xff0c 正途也 学会利用身边的工具
  • Grpc常见面试题

    1 grpc四种通信模式 xff1f 答 xff1a 1 xff09 一元 RPC xff1a 客户端发起一个请求 xff0c 服务端给出一个响应 xff0c 然后请求结束 xff1b 2 xff09 服务端流 RPC xff1a 客户端发
  • 读书笔记:无人机控制(五)

    目录 垂直起降飞行器的数学建模与非线性控制RUAV动力学模型刚体动力学 Rigid Body Dynamics 空气动力学力与力矩 Aerodynamics Forces and Torques 非线性分层飞行控制器的设计与稳定性飞行控制器
  • jetson-xavier-nx刷机趟坑记录

    1 sdkmanager刷写系统 sdkmanager启动失败 使用sdkmanager刷机时可能会遇到sdkmanager启动失败的情况 xff0c 界面出现一个 OPT 错误 xff0c 显示 No SDKs are available
  • 虚拟串口软件和串口调试助手的简单使用

    为解决计算机的物理串口个数的限制 xff0c 在进行串口调试实验时 xff0c 应尽可能采用虚拟串口软件 VSPD xff08 Virtual Serial Ports Driver xff09 虚拟串口软件是由Eltima软件公司设计的虚
  • Multi-Object Trackers

    Introduction to Multiple Target Tracking 简单介绍了多目标物跟踪的流程 方法 1 single target tracking STT 单目标跟踪 xff0c 不需要association和assig
  • MATLAB:Introduction to Assignment Methods in Tracking Systems 目标匹配方法

    引言 1 MATLAB R2019b 2 MATLAB中Introduction to Assignment Methods in Tracking Systems介绍了目标匹配的方法 包括背景介绍 xff0c 2 D匹配介绍 xff08
  • Introduction to Using the Global Nearest Neighbor Tracker

    MATLAB R2019b global nearest neighbor GNN tracker xff1a 最近邻 1 目标 Choose the assignment algorithm to associate detections
  • C语言qsort的三种使用

    1 结构体的qsort include lt stdlib h gt include lt stdio h gt struct block int att1 int att2 int cmp const void a const void