Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: matiapache12 en 26 Octubre 2016, 16:46 PM

Título: ordenar por apellido ascendente, y por nombre descendente
Publicado por: matiapache12 en 26 Octubre 2016, 16:46 PM
esta es la parte del codigo, necesito que me ordene primero por apellido de manera ascendente y despues por nombre de manera descendente
AYUDA PORFAAA
int i;
   int j;
   eCliente auxi;
   eCliente auxo;
   for (i=0;i<tam;i++)
   {
   for (j=0;j<tam-1;j++)
   {
   if (strcmp(clientes[i].apellido, clientes[j].apellido)>0)
   {
   auxi=clientes[i];
   clientes[i]=clientes[j];
   clientes[j]=auxi;
   for(i=0;i<tam;i++)
   {
   if(strcmp(clientes[i].apellido, clientes[j].apellido)==0)
   {

   for (i=0;i<tam;i++)
   {
   for (j=0;j<tam-1;j++)
   {
   if (strcmp(clientes[i].nombre, clientes[j].nombre)<0)
   {
   auxo=clientes[i];
   clientes[i]=clientes[j];
   clientes[j]=auxo;
   }
   }
   }
   }
   }
   }
   }
   }



Mod: Los códigos deben ir en etiquetas GeSHi
Título: Re: ordenar por apellido ascendente, y por nombre descendente
Publicado por: palacio29 en 26 Octubre 2016, 18:08 PM
Cita de: matiapache12 en 26 Octubre 2016, 16:46 PM
esta es la parte del codigo, necesito que me ordene primero por apellido de manera ascendente y despues por nombre de manera descendente
AYUDA PORFAAA
int i;
   int j;
   eCliente auxi;
   eCliente auxo;
   for (i=0;i<tam;i++)
   {
   for (j=0;j<tam-1;j++)
   {
   if (strcmp(clientes[i].apellido, clientes[j].apellido)>0)
   {
   auxi=clientes[i];
   clientes[i]=clientes[j];
   clientes[j]=auxi;
   for(i=0;i<tam;i++)
   {
   if(strcmp(clientes[i].apellido, clientes[j].apellido)==0)
   {

   for (i=0;i<tam;i++)
   {
   for (j=0;j<tam-1;j++)
   {
   if (strcmp(clientes[i].nombre, clientes[j].nombre)<0)
   {
   auxo=clientes[i];
   clientes[i]=clientes[j];
   clientes[j]=auxo;
   }
   }
   }
   }
   }
   }
   }
   }



Mod: Los códigos deben ir en etiquetas GeSHi

No recuerdo muy bien pero creo que el for es asi

for(i=0;i<N;i++)
{
    for(j=i+1;j<N;i++)
     {

CODIGO
     }

}


Quizas de la manera que lo haces vos esta bien, pero yo siempre lo uso asi cuando es ordenar, en cuanto a las demas sentencias, creo que el strcpy esta bien y los auxiliares y las demas asignaciones tambien estan bien, fijate si es el for.