现在,我看到了各种例子,但我不明白它们的意思。
这是我的结构
typedef struct profile{
char gender[1];
double soc;
. . .
} PROFILE;
其中 soc 是我要排序的社会安全号码。
我知道你需要一个比较函数,但我不知道如何找到我需要的确切东西。
这是一个使用示例qsort
对于 C 中的结构体数组
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int price;
int id;
} order;
int compare(const void *a, const void *b) {
order *orderA = (order *)a;
order *orderB = (order *)b;
return (orderB->price - orderA->price);
}
int main() {
order list[6];
srand(time(NULL));
printf("Before sorting\n");
for (int i = 0; i < 6; i++) {
list[i].price = rand() % 10;
list[i].id = i;
printf("Order id = %d Price = %d\n", list[i].id, list[i].price);
}
qsort(list, 6, sizeof(order), compare);
printf("AFTER sorting\n");
for (int n = 0; n < 6; n++) {
printf("Order id = %d Price = %d\n", list[n].id, list[n].price);
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)