#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;
}

