#include <stdio.h>
#include <stdlib.h>
struct Date {
int day, month, year;
};
int compare(const void *pd1, const void *pd2) {
const struct Date *d1 = pd1;
const struct Date *d2 = pd2;
if (d1->year < d2->year)
return 1;
if (d1->year == d2->year && d1->month < d2->month)
return 1;
if (d1->year == d2->year && d1->month == d2->month && d1->day < d2->day)
return 1;
return 0;
}
void print(struct Date *arr, int size) {
for (int i = 0; i < size; i++) {
printf("%d/%d/%d\n", arr[i].day, arr[i].month, arr[i].year);
}
}
int main()
{
struct Date arr[] = {{13, 2, 2007},
{19, 4, 2011},
{18, 4, 2011},
{1, 3, 1966},
{17, 5, 2019},
{17, 12, 1980},
{21, 6, 2017},
{17, 5, 2020}};
int size = sizeof(arr)/sizeof(arr[0]);
qsort(arr, size, sizeof(struct Date), compare);
print(arr, size);
}
/*
run:
17/5/2020
17/5/2019
21/6/2017
19/4/2011
18/4/2011
13/2/2007
17/12/1980
1/3/1966
*/