nvnnaidenov

Zad63

Oct 21st, 2021
704
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. void ReadArray(int, int[]);
  7. void PrintArray(int, int[]);
  8. void SortArray(int, int[]);
  9. void MergeArrays(int, int[], int, int[], int&, int[]);
  10.  
  11. int main()
  12. {
  13.     int n;
  14.     int m;
  15.     int p = 40;
  16.     int a[20];
  17.     int b[20];
  18.     int c[20];
  19.  
  20.     cout << "n = ";
  21.     cin >> n;
  22.     if(!cin)
  23.     {
  24.         cout << "Error, bad input!" << endl;
  25.         return 1;
  26.     }
  27.     if(n < 1 || n > 20)
  28.     {
  29.         cout << "Error, incorrect input!" << endl;
  30.         return 1;
  31.     }
  32.  
  33.     ReadArray(n, a);
  34.     SortArray(n, a);
  35.     PrintArray(n, a);
  36.  
  37.     cout << endl;
  38.  
  39.     cout << "m = ";
  40.     cin >> m;
  41.     if(!cin)
  42.     {
  43.         cout << "Error, bad input!" << endl;
  44.         return 1;
  45.     }
  46.     if(m < 1 || m > 20)
  47.     {
  48.         cout << "Error, incorrect input!" << endl;
  49.         return 1;
  50.     }
  51.  
  52.     ReadArray(m, b);
  53.     SortArray(m, b);
  54.     PrintArray(m , b);
  55.  
  56.     cout << endl;
  57.  
  58.     MergeArrays(n, a, m, b, p, c);
  59.     PrintArray(p, c);
  60.  
  61.     return 0;
  62.  
  63. }
  64.  
  65. void ReadArray(int n, int arr[])
  66. {
  67.     for(int i = 0; i <= n - 1; i++)
  68.     {
  69.         cout << "[" << i << "] = ";
  70.         cin >> arr[i];
  71.     }
  72. }
  73.  
  74. void PrintArray(int n, int arr[])
  75. {
  76.     for(int i = 0; i <= n - 1; i++)
  77.     {
  78.         cout << setw(3) << arr[i];
  79.     }
  80.  
  81.     cout << endl;
  82. }
  83.  
  84. void SortArray(int n, int arr[])
  85. {
  86.     for(int i = 0; i <= n - 2; i++)
  87.     {
  88.         int k = i;
  89.         int min = arr[i];
  90.  
  91.         for(int j = i + 1; j <= n - 1; j++)
  92.         {
  93.             if(arr[j] < min)
  94.             {
  95.                 min = arr[j];
  96.                 k = j;
  97.             }
  98.         }
  99.  
  100.         int x = arr[i];
  101.         arr[i] = arr[k];
  102.         arr[k] = x;
  103.     }
  104. }
  105.  
  106. void MergeArrays(int n, int a[], int m, int b[], int& k, int c[])
  107. {
  108.     int i = 0;
  109.     int j = 0;
  110.  
  111.     k = -1;
  112.  
  113.     while(i <= n - 1 && j <= m - 1)
  114.     {
  115.         if(a[i] <= b[j])
  116.         {
  117.             k++;
  118.             c[k] = a[i];
  119.             i++;
  120.         }
  121.         else
  122.         {
  123.             k++;
  124.             c[k] = b[j];
  125.             j++;
  126.         }
  127.     }
  128.  
  129.     int l;
  130.  
  131.     if(i > n - 1)
  132.     {
  133.         for(l = j; l <= m - 1; l++)
  134.         {
  135.             k++;
  136.             c[k] = b[l];
  137.         }
  138.     }
  139.     else
  140.     {
  141.         for(l = i; l <= n - 1; l++)
  142.         {
  143.             k++;
  144.             c[k] = a[l];
  145.         }
  146.     }
  147.  
  148.     k++;
  149. }
RAW Paste Data