【发布时间】:2012-04-08 10:39:59
【问题描述】:
我试图在指向结构的指针的上下文中理解 c 库 qsort。 这是我想要操作的现有代码:
结构:
#define MAX_NAME 20
#define NUM_MONTHS 12
typedef struct EMP {
char name[MAX_NAME+1];
int monthSales[NUM_MONTHS];
int total;
} Emp;
数据的全局初始化及其大小:
Emp *data;//where all entries are kept
int empSize;
我已经构建了 2 个 Emp 指针数组,我想以不同的顺序引用数据:
Emp *nameArray[empSize];//an array of pointers to point to entries alphabetically
Emp *salesArray[empSize]; //an array of pointers to pointing to entries by sales
在它们被相同分配后,我想使用 qsort 以不同方式排列它们。 nameArray 按字母顺序,使用结构中的名称和 salesArray 从大到小,使用结构中的总数
比较方法和 qsort 参数应该是什么样的?
谢谢
【问题讨论】:
-
这是作业吗?这看起来像是我在教育工作时可能提出的问题。
-
你的代码是什么样的,它试图对其中一个数组进行排序?您是否从
Emp data[empSize];数组开始,以便更容易理解它?我将从结构数组开始,让它工作,然后使用指针数组。然后编写第二个比较函数,并使用第二个指针数组。