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

标签 c arrays struct qsort

现在,我看到了各种例子,但我不明白它们的意思。

这是我的结构

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/

相关文章:

android - 是否可以从适配器加载 ListPreference 项目?

c# - 如何使用 MTOM 将 vb6 中带有图像附件的 soap 发送到 c# 中的 Web 服务?

c - 如何从链表中删除节点

c - GCC 以双机器字类型(包括 asm)访问高/低机器字

c - C 中函数的默认参数 --

javascript - 如何获取数组的最后一个数字?

c - 如何根据 var1 和 var2 在 typedef 结构中添加二维数组?

python - 无法解析从套接字接收的python中的Ctype结构

检查 C 语言中的服务器响应代码 200

c - 如何从用户空间使用asm/system.h?