El problema consiste en un ordenamiento, pero logro ordenar completo cualquier vector que sea de tipo int, pero no se como hacerle para el de tipo char.
La cosa es que necesito ingresar 40 nombres, y colocar sus notas y carnet, los ultimos 2 (notas y carnet) lo logro hacer bien, pero el de nombre que es el unico tipo char... PROBLEMAS!!!
Les pongo el codigo para ver en que me pueden ayudar... (copien el codigo en sus editores e intenten correrlo a ver que pasa).
Código PHP:
#include <iostream.h>;
#include <stdio.h>;
#include <string.h>;
#include <conio.h>;
#include <limits.h>;
char nombres[1][50],nombres_tmp[1][50];;
int carnets[50], carnets_tmp[50], n_tmp[50], notas[50], notas_tmp[50];
int i;
//FUNCION 1 DE INGRESAR
void ingresar()
{
int j,c;
clrscr();
cout<<"Cuantos alumnos desea ingresar:"<<endl;
cin>>i;
c=1;
for(j=1; j<=i; j++)
{
cout<<endl<<"Ingrese el nombre del alumno #"<<j<<":"<<c<<endl;
cin>>nombres[j];
cout<<"Ingrese el numero de carnet del alumno #"<<j<<":"<<endl;
cin>>carnets[j];
cout<<"Ingrese la nota del alumno #"<<j<<":"<<endl;
cin>>notas[j];
n_tmp[j]=c;
c=c+1;
}
}
//FUNCION 2, PARA DESPLEGAR DATOS INGRESADOS
void ver_informacion()
{
clrscr();
int j;
cout<<"NOMBRE "<<"CARNET "<<"NOTA"<<endl;
for(j=1; j<=i; j++)
{
cout<<nombres[j]<<" "<<carnets[j]<<" "<<notas[j]<<endl;
}
getch();
}
//FUNCION 3, ORDERNAR POR NOMBRE
void ordenar_nombre()
{
clrscr();
int j,z,w,aux1;
char nombre;
int n_tmps[50];
for(z=1; z<=i; z++)
{
nombres_tmp[z]=nombres[z];
n_tmps[z]=n_tmp[z];
carnets_tmp[z]=carnets[z];
notas_tmp[z]=notas[z];
}
for (z=1; z<=i-1; z++)
{
for (w=z+1; w<=i; w++)
{
if (nombres_tmp[z]<nombres_tmp[w])
{
Código PHP:
//ORDERNAR POR NOMBRES
nombre=nombres_tmp[z];
nombres_tmp[z]=nombres_tmp[w];
nombres_tmp[w]=nombre;
//ORDENAR CARNETS
aux1=carnets_tmp[z];
carnets_tmp[z]=carnets_tmp[w];
carnets_tmp[w]=aux1;
//ORDENAR NOTAS
aux1=notas_tmp[z];
notas_tmp[z]=notas_tmp[w];
notas_tmp[w]=aux1;
}
}
}
cout<<"NOMBRE "<<"CARNET "<<"NOTA"<<endl;
for(j=1; j<=i; j++)
{
cout<<nombres[n_tmps[j]]<<" "<<carnets_tmp[j]<<" "<<notas_tmp[j]<<endl;
}
getch();
}
//FUNCION PRINCIPAL
void main()
{
int opcion=0;
while (opcion != 12)
{
clrscr();
cout<<"PROGRAMA REALIZADO POR:"<<endl;
cout<<"Bilkar M. Morataya Molina"<<endl;
cout<<"Carne: 90-06-2810"<<endl<<endl;
cout<<"1. Ingresar Datos"<<endl;
cout<<"2. Desplegar información"<<endl;
cout<<"3. Ordenamiento por nombre (ascendente)"<<endl;
cout<<"4. Ordenamiento por nota (descendente)"<<endl;
cout<<"5. Eliminar por nombre"<<endl;
cout<<"6. Eliminar por carnet"<<endl;
cout<<"7. Buscar por canet"<<endl;
cout<<"8. Nota maxima"<<endl;
cout<<"9. Nota minima"<<endl;
cout<<"10. Promedio de notas"<<endl;
cout<<"11. Reporte en archivo"<<endl;
cout<<"12. Salir"<<endl<<endl;
cin>>opcion;
//OPCION 1, INGRESAR DATOS
if (opcion==1) ingresar();
//OPCION 2, VER DATOS
if (opcion==2) ver_informacion();
//OPCION 3,
if (opcion==3) ordenar_nombre();