Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ordenar por apellidos y edad C++

Estas en el tema de Ordenar por apellidos y edad C++ en el foro de C/C++ en Foros del Web. Problema: Crear un programa que gestiona un elenco de personas que van ingresadas por el cliente, el cliente ingresa un nombre, apellido y edad para ...
  #1 (permalink)  
Antiguo 01/12/2015, 15:03
 
Fecha de Ingreso: diciembre-2015
Mensajes: 1
Antigüedad: 8 años, 4 meses
Puntos: 0
Ordenar por apellidos y edad C++

Problema:
Crear un programa que gestiona un elenco de personas que van ingresadas por el cliente, el cliente ingresa un nombre, apellido y edad para tres personas diferentes.
El programa, una vez ingresados los datos, imprime el elenco ordenado por apellido y sucessivamente por edad.
hasta el momento tengo esto, que me ordena por edad(El mayor)
Código
Código C++:
Ver original
  1. struct persone
  2. {
  3.    string nome;
  4.   string cognome;
  5.   int edad;
  6. };
  7.  
  8.  
  9. int main ()
  10. {
  11.    persone arreglo[3];
  12.  
  13.    for (int i =0; i < 3; i++)
  14.    {
  15.        cout<<"Inserte Nombre " <<i+1 <<endl;
  16.        cin>> arreglo[i].nome;
  17.        cout<<"Inserte Cognome " <<i+1 <<endl;
  18.        cin>> arreglo[i].cognome;
  19.        cout<<"Inserte Edad " <<i+1 <<endl;
  20.        cin>> arreglo[i].edad;
  21.    }
  22.  
  23.    //ordenar  metodo burbuja por edades
  24.    int temp = 0;
  25.    for (int i =0; i < 3; i++)
  26.       for (int j =i+1; j < 3; j++)
  27.          if ( arreglo[i].edad < arreglo[j].edad )
  28.          {
  29.               temp = arreglo[i].edad;
  30.               arreglo[i].edad = arreglo[j].edad;
  31.               arreglo[j].edad = temp;
  32.          }
  33.  
  34.    //ordenar  metodo burbuja por nombres
  35.    string temp1 = "";
  36.    for (int i =0; i < 3; i++)
  37.       for (int j =i+2; j < 3; j++)
  38.          if ( arreglo[i].nome < arreglo[j].nome )
  39.          {
  40.               temp1 = arreglo[i].nome;
  41.               arreglo[i].nome = arreglo[j].nome;
  42.               arreglo[j].nome = temp1;
  43.          }
  44.  string temp2 = "";
  45.    for (int i =0; i < 3; i++)
  46.       for (int j =i+2; j < 3; j++)
  47.          if ( arreglo[i].cognome < arreglo[j].cognome )
  48.          {
  49.               temp1 = arreglo[i].cognome;
  50.               arreglo[i].cognome= arreglo[j].cognome;
  51.               arreglo[j].cognome = temp2;
  52.          }
  53.  
  54.    for (int i =0; i < 3; i++)
  55.    {
  56.        cout<<i+1<<": Nome " <<arreglo[i].nome<<endl;
  57.        cout<<i+1<<": Cognome " <<arreglo[i].cognome<<endl;
  58.        cout<<i+1<<": Età " <<arreglo[i].edad<<endl;
  59.    }
  60.  
  61.   return 0;
  62. }
Grazie!
  #2 (permalink)  
Antiguo 01/12/2015, 15:27
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Ordenar por apellidos y edad C++

Es simple, compara carácter por carácter cada string. Luego es lo mismo que ordenar en el otro caso. Por cierto, en el primer for pon mejor i < 2 ya que si pones 3 haces una iteración de más para nada.

Última edición por aguml; 01/12/2015 a las 15:33

Etiquetas: edad, int, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:33.