Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: MarSalem en 6 Noviembre 2019, 21:17 pm



Título: AYUDA POR FAVOOOR
Publicado por: MarSalem en 6 Noviembre 2019, 21:17 pm
necesito ordenar por genero, todos los femeninos primero, despues todos los femeninos con mayor handicap llegando al menor, luegos los masculinos con mayor handicap hasta llegar al menor pr ultimo. este es mi codigo pero no lo ordena de la forma que quiero.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5.  
  6. struct jugador {
  7. char nombre [20];
  8. char sexo;
  9. int handicap;
  10. };
  11. void carga( struct jugador[], int );
  12. void mirar( struct jugador[], int );
  13. void ordenar ( struct jugador[], int );
  14.  
  15. #define N 4
  16. #define largo 20
  17.  
  18. int main(){
  19. struct jugador vec[N];
  20.    carga (vec, N);
  21.    ordenar ( vec, N );
  22.    mirar ( vec, N );
  23. }
  24.  
  25.  
  26. void mirar (struct jugador v[], int n)
  27. {
  28. int i;
  29.        printf ("NOMBRE\t SEXO\t HANDICAP\t\n");
  30.    for(i=0;i<n;i++)
  31.        {
  32.            printf ("%s\t %c \t %d \n", v[i].nombre , v[i].sexo , v[i].handicap);
  33.        }
  34. }
  35.  
  36. void carga (struct jugador v[], int n)
  37. {
  38. int i;
  39.    for (i=0;i<n;i++){
  40.        printf ("\n\tingrese nombre del jugador : ");
  41.        fflush (stdin);
  42.        gets(v[i].nombre);
  43.        printf ("\n\tingrese sexo del jugador : ");
  44.        v[i].sexo = getchar();
  45.        printf ("\n\tingrese handicap del jugador : ");
  46.        scanf ("%d", &v[i].handicap);
  47.    }
  48. }
  49.  
  50. void ordenar ( struct jugador v[], int n ){
  51. int i, j;
  52. struct jugador aux;
  53.  
  54. for ( i = 0 ; i < n-1 ; i++ )
  55. for ( j = 0 ; j < n-i-1 ; j++ )
  56. if( (v[j].sexo == 'f') && v[j].handicap > v[j+1].handicap ){
  57.  
  58. aux = v[j];
  59. v[j] = v[j+1];
  60. v[j+1] = aux;
  61. }
  62. }[code=c][code=c]
[/code][/code]


Título: Re: AYUDA POR FAVOOOR
Publicado por: CalgaryCorpus en 6 Noviembre 2019, 22:10 pm
y si esta condicion

Código
  1. if( (v[j].sexo == 'f') && v[j].handicap > v[j+1].handicap ){
  2.  
la cambias por

Código
  1. if(( (v[j].sexo == 'f') && v[j+1].sexo == 'm')) ||
  2.      ((v[j].sexo == v[j+1].sexo) && v[j].handicap > v[j+1].handicap) ){


Cambia algo?