• Martes 30 de Abril de 2024, 03:02

Autor Tema:  problema con un codigo de ordenamiento  (Leído 1015 veces)

luis94

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
problema con un codigo de ordenamiento
« en: Jueves 2 de Diciembre de 2010, 04:21 »
0
necesito ayuda con este codigo que me tiene que ordenar unas rfc capturadas segun unas edades capturadas,ya m ordena las edades pero las rfc me las deja igual que cuando las capturo...por favor ayudenme es para mañana el codigo y vale el 75% de mi calificacion..gracias de antemano
este es el codigo:
#include "stdafx.h"
#include <iostream>  
using namespace System;
using namespace std;
struct maestro
{
   char rfc[10];
   int ed;
};
void ordenar(struct maestro[]);

void main()
{
   maestro m[5];
   for(int x=0;x<5;x++)
   {
      cout<<"Captura RFC y la Edad del maestron";
      cin>>m
  • .rfc>>m
  • .ed;

      cout<<"Los datos capturados sonn"<<m
  • .rfc<<"t"<<m
  • .ed;

      cout<<"n";
   }
   ordenar(m);
   cin.ignore();
   cin.ignore();
}
void ordenar(struct maestro m[5])
{
   int x;
   int y;
   int teme;
   for(x=0;x<5;x++)
   {
      for(y=0;y<4;y++)
      {
         if(m[y].ed<=m[y+1].ed)
         {
            teme=m[y].ed;
            m[y].ed=m[y+1].ed;
            m[y+1].ed=teme;
          }
      }
   }
   cout<<"Las edades con RFC ordenadas sonn";
   for(x=0;x<5;x++)
   {
      cout<<m
  • .ed<<"t"<<m
  • .rfc;

   }
}

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: problema con un codigo de ordenamiento
« Respuesta #1 en: Jueves 2 de Diciembre de 2010, 09:40 »
0
Por favor, utiliza las etiquetas de código para postear código.

Saludos.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: problema con un codigo de ordenamiento
« Respuesta #2 en: Jueves 2 de Diciembre de 2010, 19:48 »
0
Tu logica esta bien, solo tienes un pequeño error.

En la ordenacion cuando intercambias los valores, solo estas intercambiando la edad, cuando en realidad debes intercambair  toda la estructura, para que quede bien.

La modificacion quedaria asi:

Código: C++
  1.  
  2. void ordenar(struct maestro m[5])
  3. {
  4.     int x;
  5.     int y;
  6.     // Toda la estructura, no solo la edad
  7.     struct maestro teme;
  8.     for(x=0;x<5;x++)
  9.     {
  10.         for(y=0;y<4;y++)
  11.         {
  12.             // Esto si esta bien, ya que estas ordenando por edad
  13.             if(m[y].ed<=m[y+1].ed)
  14.             {
  15.                 // Toda la estuctura, no solo la edad
  16.                 teme=m[y];
  17.                 m[y]=m[y+1];
  18.                 m[y+1]=teme;
  19.             }
  20.         }
  21.     }
  22.     cout<<"Las edades con RFC ordenadas sonn";
  23.     for(x=0;x<5;x++)
  24.     {
  25.         cout<<m[x].ed<<"t"<<m[x].rfc;
  26.     }
  27. }
  28.  
  29.  

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================