Foro de elhacker.net

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
Código
  1. int i;
  2.    int j;
  3.    eCliente auxi;
  4.    eCliente auxo;
  5.    for (i=0;i<tam;i++)
  6.    {
  7.    for (j=0;j<tam-1;j++)
  8.    {
  9.    if (strcmp(clientes[i].apellido, clientes[j].apellido)>0)
  10.    {
  11.    auxi=clientes[i];
  12.    clientes[i]=clientes[j];
  13.    clientes[j]=auxi;
  14.    for(i=0;i<tam;i++)
  15.    {
  16.    if(strcmp(clientes[i].apellido, clientes[j].apellido)==0)
  17.    {
  18.  
  19.    for (i=0;i<tam;i++)
  20.    {
  21.    for (j=0;j<tam-1;j++)
  22.    {
  23.    if (strcmp(clientes[i].nombre, clientes[j].nombre)<0)
  24.    {
  25.    auxo=clientes[i];
  26.    clientes[i]=clientes[j];
  27.    clientes[j]=auxo;
  28.    }
  29.    }
  30.    }
  31.    }
  32.    }
  33.    }
  34.    }
  35.    }


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
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
Código
  1. int i;
  2.    int j;
  3.    eCliente auxi;
  4.    eCliente auxo;
  5.    for (i=0;i<tam;i++)
  6.    {
  7.    for (j=0;j<tam-1;j++)
  8.    {
  9.    if (strcmp(clientes[i].apellido, clientes[j].apellido)>0)
  10.    {
  11.    auxi=clientes[i];
  12.    clientes[i]=clientes[j];
  13.    clientes[j]=auxi;
  14.    for(i=0;i<tam;i++)
  15.    {
  16.    if(strcmp(clientes[i].apellido, clientes[j].apellido)==0)
  17.    {
  18.  
  19.    for (i=0;i<tam;i++)
  20.    {
  21.    for (j=0;j<tam-1;j++)
  22.    {
  23.    if (strcmp(clientes[i].nombre, clientes[j].nombre)<0)
  24.    {
  25.    auxo=clientes[i];
  26.    clientes[i]=clientes[j];
  27.    clientes[j]=auxo;
  28.    }
  29.    }
  30.    }
  31.    }
  32.    }
  33.    }
  34.    }
  35.    }


Mod: Los códigos deben ir en etiquetas GeSHi

No recuerdo muy bien pero creo que el for es asi
Código
  1. for(i=0;i<N;i++)
  2. {
  3.    for(j=i+1;j<N;i++)
  4.     {
  5.  
  6. CODIGO
  7.     }
  8.  
  9. }

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.