Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - esercizio sulle strutture
Forum - C/C++ - esercizio sulle strutture - Pagina 3

Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:04
Venerdì, 19/03/2010
Esistono molti metodi!
Eccone qua uno: http://it.wikipedia.org/wiki/Bubble_sort

PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 22:09
Venerdì, 19/03/2010
eh ma funziona anche con i caratteri?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:22
Venerdì, 19/03/2010
Certamente!

Il mio consiglio, se puoi, è quello di utilizzare la classe string.

PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 22:44
Venerdì, 19/03/2010
sii c sn riuscita ho fatto così:
Codice sorgente - presumibilmente C++

  1. void ordina(Tgalleria& galleria, char ch){
  2.      int i,s,j,ap;
  3.      Topera x1,x2;
  4.      Tgalleria galleria1,galleria2;
  5.      cout<<"Ordina per: titolo ('t'),autore ('a'), data di creazione ('d'), prezzo ('p'): ";
  6.      cin>>ch;
  7.      if((ch=='t')||(ch=='a')||(ch=='d')||(ch=='p')){
  8.         switch(ch){
  9.                    case 't':
  10.                      for(i=0;i<galleria.numero;++i){
  11.                        for(j=galleria.numero-1;j>=i+1;j--){
  12.                           if(strcmp(galleria.opera[j-1].titolo,galleria.opera[j].titolo)==1){
  13.                                           sposta(galleria.opera[j],galleria.opera[j-1]);
  14.                                           }}}
  15.                                break;
  16.                    case 'a':
  17.                         for(i=0;i<galleria.numero;++i){
  18.                        for(j=galleria.numero-1;j>=i+1;j--){
  19.                           if(strcmp(galleria.opera[j-1].autore,galleria.opera[j].autore)==1){
  20.                                           sposta(galleria.opera[j],galleria.opera[j-1]);
  21.                                           }}}
  22.                                }
  23.                                }}
  24. void sposta(Topera& x1, Topera& x2){
  25.      Topera s;
  26.      s=x1;
  27.      x1=x2;
  28.      x2=s;
  29.      }


ovviamente devo ancora finirlo qnd credo ci siano delle variabili che non ho usato :D

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:56
Venerdì, 19/03/2010
La funzione strcmp serve a controllare l' uguagilanza tra due stringhe.
Per l' ordinamento, devi metterle in ordine alfabetico!

Purtroppo, se utilizzi i vettori di caratteri, sei costretta ad costruirti una funzione apposita per eseguire il confronto alfabetico.

PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 23:15
Venerdì, 19/03/2010
no nn ho capito stai dicendo k non va bene????:-?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:29
Venerdì, 19/03/2010
Scusa, ho detto un' esattezza!

:_doubt: Ero convinto che strcmp confrontasse solo l' uguaglianza.

PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 23:36
Venerdì, 19/03/2010
una domanda un pò banale con il c quando volevo prendere una frase usavo gets se qui voglio che ne so a titolo mettere yes man come posso fare???
xk il cin me lo vedrebbe come yes=titolo e man=autore...

PM Quote
Pagine: [ 1 2 3 4 5 6 ] Precedente | Prossimo