#include <stdio.h>
#include <stdlib.h>
typedef struct {
int ZugId; // Darauf möchte ich zugreifen
int bahnhofId;
int anStunde; // Darauf möchte ich zugreifen
int anMinute; // Darauf möchte ich zugreifen
int abStunde;
int abMinute;
int anzahlAussteiger;
int anzahlEinsteiger;
} Schedule;
typedef struct {
Schedule *schedules; // Über das hier
int count;
int allocated;
} List;
int cmp(const void*a, const void*b)
{ /* aufsteigend sortieren nach 2 rangungleichen Kriterien */
const Schedule *x = a, *y = b;
if (x->anStunde != y->anStunde)
return x->anStunde <= y->anStunde ? -1 : 1;
return x->anMinute <= y->anMinute ? -1 : 1;
}
int main()
{
List list = { (Schedule[]) { {3,3,3,3,3,3,3,3},{1,1,1,1,1,1,1,1},{2,2,2,2,2,2,2,2},{0},{9,9,9,9,9,9,9,9} },5 };
qsort(list.
schedules, list.
count, sizeof*list.
schedules, cmp
); for (int i = 0; i < list.count; ++i)
printf("%d\n", list.
schedules[i
].
ZugId); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IHsKCWludCBadWdJZDsgLy8gRGFyYXVmIG3DtmNodGUgaWNoIHp1Z3JlaWZlbgoJaW50IGJhaG5ob2ZJZDsKCWludCBhblN0dW5kZTsgLy8gRGFyYXVmIG3DtmNodGUgaWNoIHp1Z3JlaWZlbgoJaW50IGFuTWludXRlOyAvLyBEYXJhdWYgbcO2Y2h0ZSBpY2ggenVncmVpZmVuCglpbnQgYWJTdHVuZGU7CglpbnQgYWJNaW51dGU7CglpbnQgYW56YWhsQXVzc3RlaWdlcjsKCWludCBhbnphaGxFaW5zdGVpZ2VyOwp9IFNjaGVkdWxlOwoKdHlwZWRlZiBzdHJ1Y3QgewoJU2NoZWR1bGUgKnNjaGVkdWxlczsgLy8gw5xiZXIgZGFzIGhpZXIKCWludCBjb3VudDsKCWludCBhbGxvY2F0ZWQ7Cn0gTGlzdDsKCmludCBjbXAoY29uc3Qgdm9pZCphLCBjb25zdCB2b2lkKmIpCnsgIC8qIGF1ZnN0ZWlnZW5kIHNvcnRpZXJlbiBuYWNoIDIgcmFuZ3VuZ2xlaWNoZW4gS3JpdGVyaWVuICovCgljb25zdCBTY2hlZHVsZSAqeCA9IGEsICp5ID0gYjsKCWlmICh4LT5hblN0dW5kZSAhPSB5LT5hblN0dW5kZSkKCQlyZXR1cm4geC0+YW5TdHVuZGUgPD0geS0+YW5TdHVuZGUgPyAtMSA6IDE7CglyZXR1cm4geC0+YW5NaW51dGUgPD0geS0+YW5NaW51dGUgPyAtMSA6IDE7Cn0KCmludCBtYWluKCkKewoJTGlzdCBsaXN0ID0geyAoU2NoZWR1bGVbXSkgeyB7MywzLDMsMywzLDMsMywzfSx7MSwxLDEsMSwxLDEsMSwxfSx7MiwyLDIsMiwyLDIsMiwyfSx7MH0sezksOSw5LDksOSw5LDksOX0gfSw1IH07Cglxc29ydChsaXN0LnNjaGVkdWxlcywgbGlzdC5jb3VudCwgc2l6ZW9mKmxpc3Quc2NoZWR1bGVzLCBjbXApOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0LmNvdW50OyArK2kpCgkJcHJpbnRmKCIlZFxuIiwgbGlzdC5zY2hlZHVsZXNbaV0uWnVnSWQpOwoJcmV0dXJuIDA7Cn0KCg==