qsort相关内容

C中的qsort段错误

我正在尝试按照手册页使用 qsort,但无论我尝试什么,我都会不断收到段错误 这是重要的代码部分 int compare_dirent(const void *a, const void *b){const struct dirent *first = (const struct dirent *) a;const struct dirent *second = (const struct ..
发布时间:2022-01-12 16:32:36 其他开发

使用 stdlib 的 qsort() 对字符串数组进行排序

一些前言:我是一名计算机工程专业的学生,​​在学习了 3 个学期的 Java(直至数据结构)后,我正在上 C 的第一堂课.这个问题与家庭作业有关,但离我解决它还有几个步骤. 我有一个读入内存的输入文件,它存储在 char[9][500] 中.我最多读入 500 个最大长度为 8 的字符串.我正在尝试使用 stdlib 内置的 qsort() 函数对该数组进行排序,但出现了一些内存错误. ..
发布时间:2022-01-12 15:55:42 其他开发

使用 qsort 对二维数组进行排序

我正在尝试对二维数组进行排序.首先我按列排序,然后按行排序.逐列有效,但逐行无效.这段代码有什么问题? int scmpr (const void *a, const void *b){返回 strcmp((const char*)a, (const char*)b);}int main(void){int i,j;字符**标签;tab=(char**)malloc(sizeof(char*)* ..
发布时间:2021-11-28 17:51:57 其他开发

在 C 中排序后跟踪数组的原始索引

我有一个数组,比如 A[5],这 5 个元素是 5,4,1,2,3.现在我按升序对这些数组进行排序.所以结果数组现在将是 1,2,3,4,5.我使用 stdlib.h 的 qsort() 函数对此进行排序.问题是如何获得原始数组相对于我的新数组的索引.最初我的索引是 0,1,2,3,4 对应的 5,4,1,2,3 值,现在索引已更改为 2,3,4,1,0.如何在 C 中有效地获得这些索引?在此先感 ..
发布时间:2021-11-18 02:49:48 其他开发

需要帮助将 qsort 与结构数组一起使用

现在,我看过各种例子,但我不明白它们的意思. 这是我的结构 typedef struct profile{字符性别[1];双重社会;...} 轮廓; 其中 soc 是我将要排序的社会安全号码. 我知道您需要一个比较函数,但我不知道如何得出我需要的确切内容. 解决方案 这里是一个在 C 中使用 qsort 处理结构数组的例子 /* qsort 示例 */#include # ..
发布时间:2021-11-18 02:09:14 其他开发

使用结构的两个字段比较 qsort 的函数?

假设我们有一个结构: 结构体产品{字符名称[30];浮动价格;}; 我想先使用 qsort 按价格对其进行排序,如果价格相等,则按名称排序.我是如何想到编写比较函数的: int compare(const void *a, const void *b ){int comp = a.price - b.price;如果 (comp 0 )返回0;comp = strcmp(a.name, ..
发布时间:2021-08-31 19:22:35 其他开发

qsort 与结构数组?

我正在尝试在结构数组上使用 qsort 但我收到此错误:“*"标记之前的预期主表达式 struct muchie {整数 x,y,c;} a[100];int cmp(const void* p, const void* q){多杰副总裁,vq;vp=*(muchie* p);vq=*(muchie* q);返回 vp.c-vq.c;}//....qsort(a,m,sizeof(muchie) ..
发布时间:2021-08-31 19:18:40 C/C++开发

qsort 不会对动态分配的结构数组进行排序

我有一个结构 结构信息{字符名字[100];字符姓氏[100];字符公司名称[100];字符电子邮件[100];无符号长电话号码;}; 存储在文件 compareElements.h 我将一组值读入一个动态分配的结构数组,称为 bptr. 我的 comparePtr 指向这个函数. #include #include "compareElements.h"int compareN ..
发布时间:2021-08-31 19:17:17 其他开发

有没有办法在 C 中按多个变量对结构进行排序?

我必须编写一个函数来对数组中的结构进行排序.结构是: #define MAX_USERNAME_LENGTH 16类型定义结构{字符用户名[MAX_USERNAME_LENGTH];无符号整数游乐设施;无符号整数等级;} 司机; 程序从 .txt 文件加载数据并填充数组 driver driver_list[256] 我必须按排名和乘车次数对 driver_list 进行排序.所以如果我的 ..
发布时间:2021-08-31 19:14:50 其他开发

使用 qsort 对结构指针数组进行排序

我尝试在这个结构数组上使用 qsort 得到了奇怪的结果. 我有这个结构: struct access_data{国际部门;int到达时间;int 检查;整数处理;}; 我从文件中构造了一个 access_data 指针数组,以便它们按到达时间排序,但稍后我需要按扇区对它们进行排序,因此我有以下内容: int compare_data(const void* a, const void ..
发布时间:2021-08-31 19:06:02 其他开发

C中的快速排序实现?

我真的很喜欢 C 中的 qsort 函数.它非常易于使用,让我可以拖延学习 C++ 模板类型.我对此有几个问题: 所使用的算法是始终使用快速排序还是依赖于编译器实现? 您是否建议使用此功能,或者模板是否有真正的好处? 为了避免安全问题/段错误,我需要注意什么吗? 解决方案 算法总是使用快速排序还是依赖于编译器实现? 它依赖于实现. 你会推荐使用这个功能还是模板真的 ..
发布时间:2021-06-30 19:38:27 其他开发

QSorting一个malloc的结构数组?

我在 C 语言中为我的 qsort 提供了这个比较器函数,但无论我尝试什么,我似乎都遇到了分段错误... int textCompare ( const void * a, const void * b ){const char **x =(const char**)a;const char **y =(const char**)b;返回 strcmp(*x, *y);} 这是我的 qsort ..
发布时间:2021-06-18 20:02:28 其他开发

我的 Qsort 比较函数在内存中导致奇怪的东西

为了习惯动态创建二维数组,我想创建一个可以按每个数组中的第五个成员排序的数组.该数组是双精度组的多维数组.每组有五场双打.最后两个双打是根据我写的一些随机表达式根据前 3 个计算得出的.数组的数量与它从文件中读取的双精度组一样多.当我写它时,我从排序中得到了非常随机的结果. #include #include #include #include int getAllDoubles(char *, ..
发布时间:2021-06-18 19:59:04 其他开发

qsort 比较:为什么 const void *?

我一直在 Ke​​rnighan 和 Pike 合着的一本名为“编程实践"的书中学习 C 编程.根据本书中的材料,我编写了一个小程序,用于对命令行上给出的整数数组进行排序. #include #include #define MAXSIZE 30字符 *程序名;int arr[MAXSIZE];int icmp(int *, int *);int main(int argc, char *arg ..
发布时间:2021-06-18 19:57:30 其他开发

如何使用 qsort 对结构进行排序

我正在尝试使用 qsort 对包含指针的结构进行排序.是比较函数的问题吗?如何修复以便我可以根据抄送进行排序. 代码如下: #include #include 类型定义枚举{汽油,柴油机,电的,液化石油气,生物燃料,其他} 燃料_t;typedef struct car_tag {未签名的抄送;Fuel_t 燃料类型;} car_t;typedef 结构fleet_tag {car_t * ..
发布时间:2021-06-18 19:57:20 其他开发

对 Qsort 和指针感到困惑

我是 C 语言初学者,希望习惯术语和指针.在寻找对数值数组元素进行排序的方法时,我发现了以下工作函数原型.该函数是 qsort,它使用指针.现在我明白的是,“const"这个词确保值 a 和 b 不变,但指针不变.如果我在这里错了,请纠正我.我的问题是: 为什么要使用void * 的函数不能使用int * 从开始? 返回部分如何构造*(int*)a工作? 为什么 qsort 算法需要 ..
发布时间:2021-06-18 19:53:39 其他开发

C ++对象的快速排序向量

在我的对象向量上使用std :: qsort时遇到麻烦.(请注意,此代码在循环内) std :: vector信息= GetAllAdjacentObjInfoFromMap(FLOOR_OBJ,e_Object :: eObject_WIRE,itr.getPos());//没有相邻的电线!如果(info.size()== 0){继续;}std :: cout ..
发布时间:2021-05-28 20:08:47 C/C++开发