Originariamente inviato da elevation
a dire il vero l'ho copiata dal libro...
Ah vabbe'... Mi chiedo diverse cose allora:
1) perchè elem=array[j] viene eseguito comunque a ogni iterazione: sarebbe meglio eseguirlo solo quando c'è necessità di scambiare gli elementi confrontati
2) perchè partire da j=1 e decrementarla while (j >= 1). In pratica:

- assegna 1 a j
- mentre j è > o = a 1, decrementala.

Secondo me dovrebbe essere funzionale scritta nel seguente modo:

void ElencoPrenotati:rdina(){
int i;
int j;
Studente elem;
for(i=0;i<N;i++){ //N contiene il numero di elementi inseriti
for (j = i + 1; j < N; j++){
if (strcmp(array[j].cognome,array[i].cognome)<0)
elem = array[i];
array[i] = array[j];
array[j] = elem;
}
}
}