Salve ,
Da un pomeriggio circa sto cercando di capire come risolvere questo problema :
"inserire nome e data di nascita di due persone. Successivamente scegliere se ordinare le persone per ordine alfabetico usando come parametro il nome , o per ordine di data di nascita e stamparne il risultato."
Ora...io l'ordine alfabetico sono riuscito a farlo.. ma l'ordine per data di nascita proprio non capisco come procedere. Avevo pensato di fare tutte le combinazioni con degli if ma verrebbe troppo difficile e assai incasinato, non esiste qualcosa che faccia lo stesso lavoro ma in modo più semplice?
Di seguito metto il codice che sono riuscito a fare finora :
Grazie in anticipo .codice:#include <iostream>#include <cstring> #include <stdio.h> using namespace std; char nome[2][15]; int i=0, g[2],m[2],a[2]; void leggi_nomi_data(char nome[2][15],int g[2],int m[2],int a[2]) { do { cout<<"inserisci il nome:"; cin>>nome[i]; cout<<"inserisci il giorno:"; cin>>g[i]; cout<<"inserisci il mese:"; cin>>m[i]; cout<<"inserisci l'anno:"; cin>>a[i]; i++; } while(i<=1); } void visualizza_per_nomi(char nome[2][15]) { int j; if(j= strcmp (nome[0],nome[1])>0) cout<<nome[1]<<"\n"<<nome[0]; else if(j= strcmp (nome[0],nome[1])<0) cout<<nome[0]<<"\n"<<nome[1]; else cout<<"i nomi sono uguali!"<<endl; } void visualizza_per_data(char nome[2][15],int g[2],int m[2],int a[2]) { if(a[0]==a[1]) { if(m[0]==m[1]) { if(g[0]==g[1]) cout<<"le date sono uguali!"<<endl; } } else if(a[0]>a[1]) { if(m[0]>m[1]) { if(g[0]>g[1]) cout<<nome[1]<<"\n"<<nome[0]<<endl; } } else if(a[1]>a[0]) { if(m[1]>m[0]) { if(g[1]>g[0]) cout<<nome[0]<<"\n"<<nome[1]<<endl; } } } int main(){ int scelta; leggi_nomi_data(nome,g,m,a); cout<<"Vuoi che ordini per nome o per data? [1=nomi 2=data]: "; cin>>scelta; switch(scelta) { case 1: visualizza_per_nomi(nome); break; case 2: visualizza_per_data(nome,g,m,a); break; default: cout<<"Errore! La tua scelta non è presente tra le opzioni!!"<<endl; break; } return 0; }

Rispondi quotando