Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/05/2011, 12:14
_Lx
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años, 6 meses
Puntos: 11
Busqueda Respuesta: Pasar función a QSORT usando clases!

No te puedo explicar porque tengo que salir...

Acá está solucionado (la función cmpValores no puede pertenecer a la clase):

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int cmpValores( const void* v1, const void* v2 ){
  5.    
  6.       int vAux1 = *(int *)v1;
  7.       int vAux2 = *(int *)v2;
  8.       if( vAux1 < vAux2 )
  9.          return -1;    // si pones acá 1 y en el otro -1, se ordenará descendentemente
  10.       if( vAux1 > vAux2 )
  11.          return 1;
  12.       return 0;
  13. }
  14. class Modulo{
  15.  
  16.   public:
  17.  
  18.   void ordena( int valores[], int dim){
  19.      qsort( valores, dim, sizeof(int), cmpValores);
  20.   }
  21. };
  22.  
  23. int main()
  24. {
  25.    Modulo M;
  26.    int nums[10] = {7,5,4,6,9,1,8,3,10,2}, i;
  27.    
  28.    M.ordena( nums, 10);
  29.    for(i = 0; i < 10; i++)
  30.       printf("%d ", nums[i]);
  31.      
  32.    printf("\n\n");
  33.    system("pause");
  34.    return EXIT_SUCCESS;
  35. }
Nos vemos!