home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / c / other / learn / sort1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-10-07  |  1.1 KB  |  50 lines

  1. /* SORT1.C: Demonstrate sort with pointer notation. 
  2. */
  3.  
  4. #include <stdio.h>
  5. #define SIZE 4
  6.  
  7. void sort( int size, double **p );
  8. void show( int size, double **p, double dd[] );
  9.  
  10. main()
  11. {
  12.    int x;
  13.    static double d[] = { 3.333, 1.111, 2.222, 4.444 };
  14.    static double *d_ptr[SIZE];
  15.    for( x = 0; x < SIZE; x++ )
  16.       d_ptr[x] = &d[x];
  17.    show( SIZE, d_ptr, d );
  18.    sort( SIZE, d_ptr );
  19.    show( SIZE, d_ptr, d );
  20. }
  21.  
  22. void sort( int size, double **p )
  23. {
  24.    int x, x1;
  25.    double *temp;
  26.    for( x = 0; x < size - 1; x++ )
  27.       for( x1 = x + 1; x1 < size; x1++ )
  28.       {
  29.          if( **(p+x) > **(p+x1) )
  30.          {
  31.             temp = *(p+x1);
  32.             *(p+x1) = *(p+x);
  33.             *(p+x) = temp;
  34.          }
  35.       }
  36. }
  37.  
  38. void show( int size, double **p, double dd[] )
  39. {
  40.    int x;
  41.    printf( "------------------------" );
  42.    printf( "------------------------\n" );
  43.    for( x = 0; x < size; x++ )
  44.    {
  45.       printf( "*d_ptr[%d] = %1.3f   ", x, **(p+x) );
  46.       printf( "d_ptr[%d] = %u ", x, *(p+x) );
  47.       printf( "  d[%d] = %1.3f\n", x, dd[x] );
  48.    }
  49. }
  50.