现在,我看到了各种例子,但我不明白它们的意思。
这是我的结构
typedef struct profile{
char gender[1];
double soc;
. . .
} PROFILE;
其中 soc 是我要作为排序依据的社会安全号码。
我知道您需要比较功能,但我不知道如何得出我需要的确切内容。
最佳答案
这是在 C 中对结构数组使用 qsort
的示例
#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;
}
希望对你有帮助
卡捷琳娜·季米特里斯
(所有关于 pitsi 的问候)
关于c - 需要帮助将 qsort 与结构数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105513/