Hola, el profe te esta pidiendo que pongas en un arrglo 2 tipos de datos distintos, pues para ello puedes usar 2 arreglos dimensionales y trabajarlo en paralelo, los 2 con la misma cantidad de elementos (10) y ir almacenado en la misma posicion de cada arreglo el nombre y la edad correspondiente, esta es una forma de hacerlo pero tienes que crear 2 arreglos.
Otra forma de hacerlo mas eficiente es crear 1 'Struct' o estructura, y crear 1 solo arreglo de esa estructura y por cada posicion de ese arreglo tendras la cantidad de elementos que quieras.
En cuanto al orden, aplica el metodo burbuja como quieras ordenar si por edad o por nombre, y si es DESC o ASC camba el operador '>' ó '<'
mira el codigo, si tienes duda respondeme...
Código:
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <math.h>
using namespace std;
struct Datos
{
string nombre;
int edad;
};
int main ()
{
Datos arreglo[10];
for (int i =0; i < 10; i++)
{
cout<<"Inserte Nombre " <<i+1 <<endl;
cin>> arreglo[i].nombre;
cout<<"Inserte Edad " <<i+1 <<endl;
cin>> arreglo[i].edad;
}
//ordenar metodo burbuja por edades
int temp = 0;
for (int i =0; i < 10; i++)
for (int j =i+1; j < 10; j++)
if ( arreglo[i].edad < arreglo[j].edad )
{
temp = arreglo[i].edad;
arreglo[i].edad = arreglo[j].edad;
arreglo[j].edad = temp;
}
//ordenar metodo burbuja por nombres
string temp1 = "";
for (int i =0; i < 10; i++)
for (int j =i+1; j < 10; j++)
if ( arreglo[i].nombre < arreglo[j].nombre )
{
temp1 = arreglo[i].nombre;
arreglo[i].nombre = arreglo[j].nombre;
arreglo[j].nombre = temp1;
}
for (int i =0; i < 10; i++)
{
cout<<i+1<<": Nombre " <<arreglo[i].nombre<<endl;
cout<<i+1<<": Edad " <<arreglo[i].edad<<endl;
}
system("pause");
return 0;
}