Advertisement
LukacikPavel

Zlomky

Oct 21st, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <cassert>
  3. using namespace std;
  4.  
  5. /** Maximálny počet zlomkov */
  6. const int MAXN = 100;
  7.  
  8. struct zlomok {
  9.     int citatel;
  10.     int menovatel;
  11. };
  12.  
  13. /** Vráti true, ak zlomok x je menší ako zlomok y */
  14. bool jeMensi(zlomok &x, zlomok &y) {
  15.     return x.citatel * y.menovatel < y.citatel * x.menovatel;
  16. }
  17.  
  18. /** usporiadaj prvky v poli a od najmenšieho po najväčší */
  19. void sort(zlomok a[], int n) {
  20.     bool hotovo = false;
  21.     while (!hotovo){
  22.         bool vymenil = false;
  23.        
  24.         for (int i = 1; i < n; i++){
  25.             if (jeMensi(a[i], a[i - 1])) {
  26.                 swap(a[i-1], a[i]);
  27.                 vymenil = true;
  28.             }
  29.         }
  30.        
  31.         if(!vymenil){
  32.             hotovo = true;
  33.         }
  34.     }
  35. }
  36.  
  37. void swap(zlomok &x, zlomok &y) {
  38.     zlomok tmp = x;
  39.     x = y;
  40.     y = tmp;
  41. }
  42.  
  43. int main(void) {
  44.     zlomok zlomky[MAXN];
  45.     int n;
  46.     cin >> n;
  47.     assert(n <= MAXN);
  48.     for (int i = 0; i < n; i++) {
  49.         cin >> zlomky[i].citatel >> zlomky[i].menovatel;
  50.     }
  51.  
  52.     sort(zlomky, n);
  53.  
  54.     for (int i = 0; i < n; i++) {
  55.         cout << zlomky[i].citatel << "/" << zlomky[i].menovatel << endl;
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement