Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    27

    Aiuto per un esame

    Ciao ragazzi, sto lavorando a un programma in c++ per un esame che dovrei affontare a breve, però purtroppo non sono mai stato molto ferrato in materia
    Dovrei fare un programma che ordina in ordine alfabetico dei nomi che gli inseriamo noi dall'esterno (o dei numeri).
    Potete dirmi gentilmente come farlo? sono disperato.
    Attendo una risposta un saluto da Ryyo

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    A parte la penosità del titolo della discussione...
    fai una ricerca per "quicksort" o "bubblesort" o "mergesort"
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    ... devi utilizzare un titolo più specifico, tipo: "Ordinare array di stringhe"

    inoltre, (sempre come da regolamento) nel titolo bisogna sempre specificare il linguaggio utilizzato, quindi:

    "[C++] Ordinare array di stringhe"

    n.b. il regolamento lo trovi in rilievo (nella home di questo forum)

    ----

    per il tuo problema:

    non ci hai dato molti indizi! ad esempio: puoi utilizzare la classe STRING? e le STL?

    se la risposta è [Sì] questo codice dovrebbe andare:
    codice:
    #include <iostream>
    #include <string>     
    #include <algorithm> 
    using namespace std;
    
    int main() 
    {
        string v[5]; 
        
        for(int i=0; i<5; i++)
        {
            cout << "inserisci nome " << i+1 << " : ";
            cin >> v[i];         
        }
            
        sort(v, v+5);
            
        for (int i=0; i<5; i++)
            cout << i+1 << " - " << v[i] << endl;
     
        system("pause");    
        return 0;
    }
    altrimenti ti crei una funzione sort() tutta tua...
    un bubble sort per stringhe:
    codice:
    #include <iostream>
    using namespace std;
    
    void sbsort(char **v, int e)
    {
        int i, j;
        char *t;
    
        t = (char*) malloc(20*sizeof(char)); // stringa temporanea che conterrà i nomi da sortare
    
        for(i = 0; i < e -1; i++)
               
            for(j = i + 1; j < e; j++)
    
    	        if( strcmp(v[i], v[j])==1 )
                    {
    	            strcpy(t, v[i]);
         		    strcpy(v[i], v[j]);
    		    strcpy(v[j], t);
    	        }	
    }
    
    
    int main() 
    {
        char **v;
        int e;
        
        cout << "quanti elementi vuoi inserire? : ";  
        cin >> e;
        fflush(stdin);
            
        v=(char**)malloc(e*sizeof(char*)); // alloco dinamicamente le righe che conterranno i nomi
        
        for(int i=0; i<20; i++)
            v[i] = (char*) malloc(20*sizeof(char)); // alloco dinamicamente 20 colonne (max 20 caratteri per nome)
        
        
        for(int i=0; i<e; i++) // inserisco i nomi nell'array dinamico
        {
            cout << "inserisci nome " << i+1 << " [max. 19]: ";
            cin.getline(v[i], 20);
        }
    
        sbsort(v, e); // chismo la funzione sbsort() e gli passo l'array e il numero totale di elementi
    
        for (int i=0; i<e; i++) // visualizzo gli elementi ordinati A...Z
            cout << i+1 << " - " << v[i] << endl;
    
        for(int i=19; i>0; i--) // libero la memoria
            free(v[i]);
         
        free(v);    
         
        system("pause");    
        return 0;
    }
    ...Terrible warlords, good warlords, and an english song

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    27
    Ragazzi grazie per l'aiuto, scusate se non ho letto le regole del forum, sono stato frettoloso a postare.
    Grazie ancora per l'aiuto mo vedo di portarli al prof poi sento lui, anche se in tutti e 2 vedo molti comandi che non mi sono famigliari.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.