Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11

    [C++] Ordinamento alfabetico di stringhe

    Salve a tutti, sto lavorando ad un programma che, una volta inseriti i dati dei clienti, gestisca le loro informazioni tramite una struttura dati e le informazioni inerenti a diversi alberghi tramite un'altra struttura dati. Ad un certo punto mi viene richiesto di creare una funzione che, dato in ingresso il nome di un albergo della catena di alberghi che si sta gestendo, stampi in ordine alfabetico(considerando il cognome dei clienti come chiave di ordinamento) i clienti che hanno soggiornato nelle suite di quell'albergo.
    Avevo pensato di utilizzare un algoritmo di ordinamento come Bubble sort o Selection sort, ma non sono sicura di star facendo la cosa giusta. Mi aiutereste?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Va bene, usa un algoritmo semplice...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11
    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);
    
    
      }
    
    
    }
    Ultima modifica di MItaly; 12-02-2016 a 10:23

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.