用qsort对指针数组进行排序,失败了,帮忙看看
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SZ 10
typedef struct node
{
unsigned long id; // 排序时,要根据结构体的id进行排序
} node;
int cmp(const void* pn1, const void* pn2); // 比较函数
int main(int argc, char* argv[])
{
int nLoop = 0;
node* Array[SZ];
srand(time(NULL));
for(nLoop = 0; nLoop < SZ; ++nLoop)
{
Array[nLoop] = malloc(sizeof(node));
Array[nLoop]->id = rand();
printf("%d ", (Array[nLoop])->id );
}
printf("\n\n");
qsort(Array, SZ, sizeof(node*), cmp);
for(nLoop = 0; nLoop < SZ; ++nLoop)
{
printf("%d ", (Array[nLoop])->id );
}
printf("\n\n");
return 0;
}
int cmp(const void* pn1, const void* pn2) // 比较函数
{
const node* p1 = pn1;
const node* p2 = pn2;
int val;
if(p1->id < p2->id)
{
val = -1;
}
else if (p1->id == p2->id)
{
val = 0;
}
else
{
val = 1;
}
return val;
}
...全文
相关推荐
c语言函数库-第七章(其它函数).pdf
9. qsort函数:这是一个快速排序函数,用于对数组元素进行排序。
c语言-c语言编程基础之leetcode题解第18题四数之和.zip
为了提高效率,我们可以使用排序来优化。首先,对数组进行排序,这样可以将相同元素相邻,便于处理。3. 使用双指针法,设置两个指针i和j,分别从数组的头和尾开始。
C语言写的简易水果管理系统
知识点4:排序算法在本系统中,我们使用了qsort函数来对水果进行排序。我们定义了cmp_count_desc和cmp_price_desc两个比较函数,分别用于按数量和价格排序。
C语言指针学习指南[项目源码]
指针数组是元素为指针的数组,如char *names[5]可存储五个字符串首地址,每个元素独立指向不同内存区域,支持灵活的字符串排序与动态索引。
C语言实现学生信息管理程序
然后,我们使用fread函数读取文件中的学生信息,并将其存储在结构体数组Stu中。接下来,我们使用qsort函数对学生信息进行排序,根据出生年月的先后顺序进行排序。最后,我们输出排序后的学生信息。


