Con una sola procedura (molto molto poco elegante)
codice:
typedef struct{ 
int ore; 
int minuti;}Orario; 

typedef struct { 
Orario time; 
char attivita[20];} Impegno; 

void OrdinaImpegni(Impegno a[], int n)
{
	for (int i = n-1; i >= 0; i--)
		for (int j = n-2; j >= 0; j--)
			if ((a[j].time.ore*60 + a[j].time.minuti) > (a[j+1].time.ore*60 + a[j+1].time.minuti))
			{
				Impegno temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			}
}