• Domingo 15 de Diciembre de 2024, 06:55

Autor Tema:  problema con ordenamiento antes de rendir el examen  (Leído 889 veces)

kingsizen

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
problema con ordenamiento antes de rendir el examen
« en: Jueves 7 de Mayo de 2009, 05:28 »
0
hola amigos con suerte este sea mi ultima consulta:
alguien me puede ayudar con este ordenamiento?
no se porque motivo no funciona.. me devuelve cualquier cosa, tambien me gustaria arrastrar en el ordenamiento el nombre del equipo.
muchas gracias, esperode urgencia su respuesta!!

_____________________________________
edito:
despues de quemarme las pestañas encontre el error
habia un ; al final de un for... increible
ahora el otro problema ke tengo es ke al intentar arrastrar en la busqueda los nombres, siempre me devuelve los mismos . es decir me ordena los puntos, pero para todos usa el mismo nombre de equipo

Código: C
  1.  
  2. # include <stdio.h>
  3. # include <string.h>
  4. # define sub 20
  5.  
  6. struct equis
  7. {
  8.        char nombre[15];
  9.        char presidente[20];
  10.        int puntos;
  11. };
  12. void carga (struct equis [],int *);
  13. void ordena (struct equis [],int);
  14. char* mayor (struct equis [],int);
  15. void menores (struct equis [],int,int);
  16.  
  17. main ()
  18. {
  19.      struct equis equipos[sub];
  20.      int i,cant_e,pts;
  21.  
  22.      char opcion,*equipo[15];
  23.           cant_e=0;
  24.      
  25.      
  26.      do
  27.      {
  28.             printf ("Opcionesn");
  29.             printf ("a) Cargar Datosn");
  30.             printf ("b) lista Ordenada por puntosn");
  31.             printf ("c) Equipo con mas puntosn");
  32.             printf ("d) equipos con menos puntos que el ingresado");
  33.             printf ("e) salirn");
  34.             do
  35.             {
  36.             scanf ("%c",&opcion);
  37.             }while((opcion !='a') && (opcion !='b') && (opcion !='c') && (opcion !='d') && (opcion !='e'));
  38.            
  39.             switch (opcion)
  40.             {
  41.                    case 'a':
  42.                         {
  43.                             carga(equipos,&cant_e);
  44.                                 printf ("total %dn",cant_e);                            
  45.                             }break;
  46.                            
  47.                    case 'b':
  48.                         {
  49.                             ordena(equipos,cant_e);
  50.                             }break;
  51.                    case 'c':
  52.                         {
  53.                             *equipo= mayor (equipos,cant_e);
  54.                             printf ("El equipo de mayor puntaje es %s",*equipo);
  55.                             }break;
  56.                    case 'd':
  57.                         {
  58.                             printf ("Ingrese puntosn");
  59.                             scanf ("%d",&pts);
  60.                             menores (equipos,pts,cant_e);
  61.                         }
  62.             }
  63.  
  64.       }while(opcion !='e');
  65.                    
  66. }
  67.  
  68. void carga (struct equis e[],int *cant)
  69. {
  70.      int i,j;
  71.      char resp;
  72.      i=*cant;
  73.      
  74.      do
  75.      {
  76.              
  77.  
  78.              printf ("Ingrese Nombre Equipon");
  79.                          
  80.              scanf ("%s",e[i].nombre);
  81.              fflush(stdin);
  82.              printf ("Ingrese Nombre Presidenten");
  83.              gets (e[i].presidente);
  84.              printf ("Ingrese Puntosn");
  85.              scanf ("%d",&e[i].puntos);
  86.              ++i;
  87.              printf ("Continuar? s/nn");
  88.              fflush(stdin);
  89.              scanf ("%c",&resp);
  90.              }while (resp !='n');
  91. *cant=i;
  92.  
  93. for (j=0;j<*cant;++j)
  94. {
  95. printf ("%s %d",e[j].nombre,e[j].puntos);
  96.  
  97. }
  98.  
  99. }
  100.      
  101. void ordena (struct equis e[],int cant)
  102. {
  103.      int i,j,k,aux;
  104.      char caux[15];
  105.      aux=0;
  106.      for (i=0;i<cant;i++)
  107.      {
  108.          for (j=1;j<cant;j++)
  109.          {
  110.          if ( e[i].puntos < e[j].puntos)
  111.          {
  112.               aux=e[i].puntos;
  113.               e[i].puntos=e[j].puntos;
  114.               e[j].puntos=aux;
  115.              
  116.               strcpy(caux,e[i].nombre);
  117.               strcpy(e[j].nombre,e[i].nombre);
  118.               strcpy(e[i].nombre,caux);
  119.               }
  120.          }
  121.          }  
  122.      for (k=0;k<cant;++k)
  123.      {
  124.          printf ("%d  n",e[k].puntos);
  125.          }
  126. }
  127.      
  128.      
  129. char* mayor (struct equis e[],int cant)
  130.  
  131. {
  132.       int i,mayor,indice;
  133.       mayor=0;
  134.        indice=0;
  135.       for (i=0;i<cant;++i)
  136.       if (e[i].puntos > mayor)
  137.       {
  138.          mayor=e[i].puntos;
  139.          indice=i;
  140.          }
  141.      
  142. return (e[indice].nombre);
  143. }
  144.  
  145.  
  146. void menores (struct equis e[],int num,int cant)
  147. {
  148.      int i,j;
  149.      j=0;
  150.      char caux[cant][15];
  151.      
  152.      for (i=0;i<cant;++i)
  153.      {
  154.          if (e[i].puntos < num)
  155.          {
  156.                          ++j;
  157.                          strcpy(caux[j],e[i].nombre);
  158.          }
  159.      }
  160.      
  161.      for (i=0;i<cant;++i)
  162.      printf ("%s",caux[i]);
  163. }
  164.                          
  165.          
  166.            
  167.      
  168.      
  169.      
  170.      
  171.      
  172.      
  173.      
  174.      
  175.      
  176.      
  177.      
  178.      
  179.      
  180.      
  181.      
  182.      
  183.      
  184.      
  185.      
  186.      
  187.      
  188.      
  189.  
  190.  
  191.  

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: problema con ordenamiento antes de rendir el examen
« Respuesta #1 en: Jueves 7 de Mayo de 2009, 11:26 »
0
¿Arrastrar?  :huh: