• Miércoles 29 de Mayo de 2024, 19:09

Autor Tema:  ¿como ordenar un vector tipo char segun uno tipo int?  (Leído 1743 veces)

crixxus

  • Nuevo Miembro
  • *
  • Mensajes: 19
  • Nacionalidad: co
    • Ver Perfil
¿como ordenar un vector tipo char segun uno tipo int?
« en: Domingo 3 de Octubre de 2010, 17:37 »
0
Hola gente, soy estudiante de primer semestre de ing. de sistemas y me mandaron a hacer un algoritmo que arregle dos vectores uno tipo tipo int y el otro tipo char. Cuando ordeno el vector tipo int me sale todo bien pero al ingresar el codigo  para que me ordene el tipo char no sale error. Aqui les dejo el algoritmo hasta donde lo llevo:

Código: C++
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main (){
  6.    
  7.     char nom [50][20];// vector de nombre de estudiantes
  8.     char auxnom [20];
  9.     int nota [50];// vector de notas de los estudias
  10.     int auxnota;
  11.     int i;
  12.     int j;
  13.     int k;
  14.     int l; // indices
  15.     int cont; // contador de estudiantes
  16.     int nota1;
  17.     int nota2;
  18.     int nota4;
  19.     int nota5; // contadores de notas
  20.     int resp; // respuesta del usuario
  21.     int posmin; // posicion minima del vector
  22.    
  23.     i=0;
  24.     nota1=0;
  25.     nota2=0;
  26.     nota4=0;
  27.     nota5=0;
  28.     do{
  29.         cout<<"nombre de estudiante: ";
  30.         cin>>nom[i];
  31.         do{
  32.            cout<<"nnota de la prueba: ";
  33.            cin>>nota[i];
  34.           }while(nota[i]<1||nota[i]==3||nota[i]>5);
  35.         if(nota[i]==1){nota1++;}
  36.         if(nota[i]==2){nota2++;}
  37.         if(nota[i]==4){nota4++;}
  38.         if(nota[i]==5){nota5++;}
  39.         i++;
  40.         do{
  41.            cout<<"n¿desea agregar otro estudiante? (si=1 - no=0): ";
  42.            cin>>resp;
  43.           }while(resp<0||resp>1||i>50);
  44.            cout<<"n";
  45.      }while(resp==1);
  46.      cont=i;
  47.    
  48.      /* ORDENANDO POR CRITERIO NOTA*/
  49.      
  50.      for(i=0;i<cont-2;i++){
  51.                            posmin=i;
  52.                            for(j=1;j<cont-1;j++){
  53.                                                 if(nota[j]<nota[posmin]){
  54.                                                                          posmin=j;
  55.                                                                         }
  56.                                                 }
  57.                           auxnota=nota[i];
  58.                           nota[i]=nota[posmin];
  59.                           nota[posmin]=auxnota;
  60.                          
  61.                                                
  62.                           }                        
  63.                            
  64.                            
  65.    
  66.      cout<<"nn";
  67.     system("pause");
  68.     return 0;    
  69. }
  70.  
  71.  

Les pido el favor que me digan en que me estoy equivocando y como lo puedo corregir.
Les agradesco de antemano la ayuda prestada

crixxus

  • Nuevo Miembro
  • *
  • Mensajes: 19
  • Nacionalidad: co
    • Ver Perfil
Re: ¿como ordenar un vector tipo char segun uno tipo int?
« Respuesta #1 en: Martes 5 de Octubre de 2010, 04:10 »
0
Bueno gente para los que quieran saber como se hace ya encontre una forma sencilla y ahi les va:
Código: C++
  1. /*
  2.   Name:Test escolar
  3.   Copyright:STCV
  4.   Author: Cristian Velasquez
  5.   Date: 01/10/10 14:21
  6.   Description: algoritmo que organiza dos vectores uno de tipo char y otro tipo int segun el tipo int
  7. */
  8. #include<iostream>
  9.  
  10. using namespace std;
  11.  
  12. int main (){
  13.    
  14.     char nom [50][20];// vector de nombre de estudiantes
  15.     char auxnom [20];
  16.     int nota [50];// vector de notas de los estudias
  17.     int auxnota;
  18.     int i;
  19.     int j;
  20.     int k;
  21.     int l; // indices
  22.     int cont; // contador de estudiantes
  23.     int nota1;
  24.     int nota2;
  25.     int nota4;
  26.     int nota5; // contadores de notas
  27.     int resp; // respuesta del usuario
  28.     int posmin; // posicion minima del vector
  29.    
  30.     system("color 7c");
  31.    
  32.     i=0;
  33.     l=0;
  34.     nota1=0;
  35.     nota2=0;
  36.     nota4=0;
  37.     nota5=0;
  38.     do{
  39.         cout<<"nombre de estudiante: ";
  40.         cin>>nom[i];
  41.         do{
  42.            cout<<"nnota de la prueba: ";
  43.            cin>>nota[i];
  44.           }while(nota[i]<1||nota[i]==3||nota[i]>5);
  45.         if(nota[i]==1){nota1++;}
  46.         if(nota[i]==2){nota2++;}
  47.         if(nota[i]==4){nota4++;}
  48.         if(nota[i]==5){nota5++;}
  49.         i++;
  50.         do{
  51.            cout<<"n¿desea agregar otro estudiante? (si=1 - no=0): ";
  52.            cin>>resp;
  53.            system("cls");
  54.           }while(resp<0||resp>1||i>50);
  55.            cout<<"n";
  56.      }while(resp==1&&i<50);
  57.      cont=i;
  58.      /* IMPRIMIENDO DATOS GUARDADOS*/
  59.      
  60.      cout<<"***********Datos ingresados***********";
  61.      
  62.      for(i=0;i<cont;i++){
  63.                           cout<<"n";
  64.                           cout<<nom[i];
  65.                           cout<<"tt"<<nota[i];
  66.                           }    
  67.      
  68.      /* ORDENANDO POR CRITERIO NOTA*/
  69.      
  70.      for(i=0;i<cont-1;i++){
  71.                            posmin=i;
  72.                            for(j=i+1;j<cont;j++){
  73.                                                 if(nota[j]<nota[posmin]){
  74.                                                                          posmin=j;
  75.                                                                         }
  76.                                                 }
  77.                           auxnota=nota[i];
  78.                           nota[i]=nota[posmin];
  79.                           nota[posmin]=auxnota;
  80.                          
  81.                           for(k=0;k<cont-1;k++){
  82.                                                 auxnom[i]=nom[i][k];
  83.                                                 nom[i][k]=nom[posmin][k];
  84.                                                 nom[posmin][k]=auxnom[i];
  85.                                                 }
  86.                           }
  87.      //Imprimiendo resultados organizados
  88.      
  89.      cout<<"nnn***********RESULTADOS***********";
  90.      
  91.       for(i=0;i<cont;i++){
  92.                           cout<<"n";
  93.                           cout<<nom[i];
  94.                           cout<<"tt"<<nota[i];
  95.                           }                                                  
  96.                            
  97.                            
  98.    
  99.      cout<<"nn";
  100.     system("pause");
  101.     return 0;    
  102. }
  103.  
:rolleyes: