Ecco come avevo pensato di fare, però
quando vado ad eseguire il programma, non funziona correttamente perché invece di stamparmi i cognomi dei clienti che effettivamente hanno soggiornato in una suite dell'albergo inserito da tastiera(com'è scritto sul file), mi stampa sempre tre/quattro cognomi che corrispondono ai primi 3/4 clienti che compaiono nel file clienti, ma che non è detto abbiano soggiornato nell'hotel indicato:
codice:
void OrdinaClientiSuite(cliente ElencoClienti[], int n, stanza ElencoStanze[],char albergo2[]){
int i, j;
printf("Elenco clienti in ordine alfabetico: \n");
int numHotelClients = 0;
for(i=0; i<n; i++){
if(strcmp(ElencoStanze[i].nome_albergo,albergo2)==0){
for(j=0; j<n; j++){
if((strcmp(ElencoStanze[i].categoria,"suite")==0) &&(strcmp(ElencoClienti[j].cognome,ElencoClienti[j+1].cognome)>0)){
swap(ElencoClienti, j );
}
}
numHotelClients++;
}
}
int k;
for (k=0; k<numHotelClients; k++)
{
printf(" %s \n", ElencoClienti[k].cognome);
}
}