Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Fundamentos de programación. Tema 7. Ejercicio 6. Con funciones.
//g++ 7.4.0 #include <iostream> #include <string> using namespace std; struct Persona { string nombre; int edad; }; void ordenar_por_campo( Persona pax[], const int cont, Persona *vector[] , const string campo) { for( int i=0; i<cont; ++i ) { vector[i]=&pax[i]; } for( int i=0; i<cont-1; ++i ) { for( int j=i; j<cont; ++j ) { if( (campo=="nombre" && vector[i]->nombre>vector[j]->nombre ) || (campo=="edad" && vector[i]->edad>vector[j]->edad ) ){ Persona *aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; } // if } // for int j } // for int i } void ordenar_por_nombre( Persona pax[], const int cont, Persona *vector[] ) { ordenar_por_campo( pax, cont, vector, "nombre" ); /* for( int i=0; i<cont; ++i ) { vector[i]=&pax[i]; } for( int i=0; i<cont-1; ++i ) { for( int j=i; j<cont; ++j ) { if( vector[i]->nombre>vector[j]->nombre ) { Persona *aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; } // if } // for int j } // for int i */ } void ordenar_por_edad( Persona pax[], const int cont, Persona *vector[] ) { ordenar_por_campo( pax, cont, vector, "edad" ); /* for( int i=0; i<cont; ++i ) { vector[i]=&pax[i]; } for( int i=0; i<cont-1; ++i ) { for( int j=i; j<cont; ++j ) { if( vector[i]->edad>vector[j]->edad ) { Persona *aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; } // if } // for int j } // for int i */ } void mostrar_vector( Persona *vector[], const int cont ) { for ( int i=0; i<cont; ++i ) { cout << i+1 << ": " << vector[i]->nombre << " , " << vector[i]->edad << endl; } cout << endl; } int main() { const int MAX=5; Persona personas[MAX]={ {"Carlos", 6}, {"Ana", 3}, {"Beatriz",7}, {"Daniel Jesús", 12}, {"Estefanía", 9} }; Persona *ordenado_nombre[MAX], *ordenado_edad[MAX]; // Ordeno por nombre ordenar_por_nombre( personas, MAX, ordenado_nombre ); // Ordeno por edad ordenar_por_edad( personas, MAX, ordenado_edad); // Muestro en pantalla cout << "Ordenados por nombre: " << endl; mostrar_vector( ordenado_nombre, MAX ); cout << "Ordenados por edad: " << endl; mostrar_vector( ordenado_edad, MAX ); }
run
|
edit
|
history
|
help
0
Equilateral triangle
Funny Saying
hh
CS 201
hack qus
Proyecto 1
binder
Complex Number Class
HashFold
StrTok