Ordena una estructura de 2 diferentes maneras según el tipo de elementos que la componen.
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
struct datos
{
int carnet;
string name;
double promedio;
}*alumno;
void intercambio(int i, int j)
{
datos aux=alumno[i];
alumno[i]=alumno[j];
alumno[j]=aux;
}
void main()
{
int n,modo;
cout<<"Ingrese numero de alumnos: ";cin>>n;
alumno = new datos [n];
for(int i=0;i<n;i++)
{
cout<<endl<<"Nro de carnet:\t";cin>>alumno[i].carnet;
cout<<"Nombre: ";cin>>alumno[i].name;
cout<<"Promedio: ";cin>>alumno[i].promedio;
}
int repeat;
do{
do{
cout<<endl<<endl<<"MODO DE ORDENAMIENTO: (0) Alfabetico; (1) Promedios ";cin>>modo;
}while(modo<0 || modo>1);
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(modo)
{
if(alumno[i].promedio<alumno[j].promedio)
intercambio(i,j);
}
else
{
if(alumno[i].name>alumno[j].name)
intercambio(i,j);
}
}
}
cout<<endl<<"Carnet\tNombre\tPromedio"<<endl;
for(int i=0;i<n;i++)
cout<<alumno[i].carnet<<"\t"<<alumno[i].name<<"\t"<<alumno[i].promedio<<endl;
do{
cout<<endl<<"Ordenar de nuevo (1 SI, 0 NO)";cin>>repeat;
}while(repeat<0 || repeat>1);
}while(repeat);
}
No hay comentarios:
Publicar un comentario