Advertisement
LipAnn

Untitled

Sep 4th, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include <math.h>
  5.  
  6. #define EPS 1e-6
  7.  
  8. enum
  9. {
  10.     MAX_SIZE = (size_t) 1023
  11. };
  12.  
  13. bool
  14. equal (const double *a, const double *b)
  15. {
  16.     return abs(*a - *b) < EPS;
  17. }
  18.  
  19. bool greater(const double *a, const double *b)
  20. {
  21.     return *a - *b >= EPS;
  22. }
  23.  
  24. int
  25. comparator (const void *a, const void *b)
  26. {
  27.     a = (const double *) a;
  28.     b = (const double *) b;
  29.     if (equal(a, b)) {
  30.         return 0;
  31.     }
  32.     if (greater(a, b)) {
  33.         return -1;
  34.     }
  35.     return 1;
  36. }
  37.  
  38. int
  39. main(void)
  40. {
  41.     double input_arr[MAX_SIZE], sorted_arr[MAX_SIZE];
  42.     int n;
  43.  
  44.     scanf("%d", &n);
  45.     for (size_t i = 0; i < (size_t) n; ++i) {
  46.             scanf("%lf", input_arr + i);
  47.             sorted_arr[i] = input_arr[i];
  48.     }
  49.  
  50.     qsort(sorted_arr, (size_t) n, sizeof(*sorted_arr), comparator);
  51.  
  52.     for (size_t i = 0; i < (size_t) n; ++i){
  53.         printf("%d %.10g %10.g\n", (int) i + 1, input_arr[i], sorted_arr[i]);
  54.     }
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement