【发布时间】:2014-01-22 22:57:09
【问题描述】:
假设有一个结构:
struct x
{
int a,b,c;
};
结构体数组包含arr[0]={4,2,5}, arr[1]={6,3,1}, arr[2]={4,1,8}
那么我们如何根据成员'a'的值对这个数组进行升序排序。 平局将根据成员'b'的值打破。
所以排序后的数组应该是:arr[2],然后是arr[0],然后是arr[1]。
我用过 qsort(arr,n,sizeof(struct x),compare);
比较函数定义为
int compare(const void* a, const void * b)
{
return (*(int*)a-*(int*)b);
}
如果我必须根据成员 b 打破平局,我需要做哪些修改。(目前是先到先得的原则)。
【问题讨论】:
-
C++ 还是 C?一个好的答案将取决于其中哪一个。
-
其中任何一个..最好是c
标签: c++ c arrays sorting structure