私はいくつかの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