我必須解決幾個C問題,其中大部分都涉及不得不在某處使用qsort(),但無論我從網上獲得多少幫助,都無法使其工作。 拿這個代碼,例如:如何實現qsort()來爲一個結構數組工作?
#include <stdio.h>
#include <string.h>
struct date
{
int day;
int month;
int year;
};struct date d[5]={
{12,12,2012},
{23,02,2014},
{31,01,2222},
{32,21,2011},
{12,01,1990}
};
int compare(const void * a, const void * b)
{
struct date *orderA = (date *)a;
struct date *orderB = (date *)b;
return ( orderA->year -orderB->year );
}
int main()
{
int i;
qsort(d,5,sizeof(date),compare);
for(i=0;i<5;i++)
printf("%d %d %d\n",d[i].day,d[i].month,d[i].year);
return 0;
}
我得到的錯誤,日期是未申報的,即使它已經是。我根本無法理解比較函數,必須從網絡中複製它們。請幫幫我。我在大學的老師是一個完全的傻子。
'的sizeof(結構日期)','還的#include' –
Kninnug
並以'結構日期* orderA =(結構日期*)一個; '在比較函數中。 – Riley
或使用'typedef struct date date;' – BLUEPIXY