codice:
if ((a[j].time.ore*60 + a[j].time.minuti) > (a[j+1].time.ore*60 + a[j+1].time.minuti))
Questo if fa un semplice confronto:
facendo ore*60+minuti ottiene i minuti totali dell'uno e dell'altro, quindi li confronta. Se un elemento che viene prima nella lista in termini di tempo sta dopo, fa uno scambio. Insomma il significato e':
SE IL TOTALE MINUTI DEL PRIMO E' MAGGIORE DEL TOTALE MINUTI DEL SECONDO ...
L'alternativa sarebbe:
codice:
if ((a[j].time.ore > a[j+].time.ore) || (a[j].time.ore == a[j+1].time.ore && a[j].time.minuti > a[j+1].time.minuti))
Questo invece dice:
SE IL TOTALE ORE DEL PRIMO E' MAGGIORE DEL TOTALE ORE DEL SECONDO O IL TOTALE ORE E' UGUALE, MA IL TOTALE MINUTI DEL PRIMO E' MAGGIORE DEL TOTALE MINUTI DEL SECONDO ...
Capito ora ?