Facebook
From Little Shama, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 262
  1.  
  2. #include "pch.h"
  3. #include <iostream>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. int compare(const void * a, const void * b)
  9. {
  10.         if (*(int*)a < *(int*)b) return -1;
  11.         if (*(int*)a == *(int*)b) return 0;
  12.         if (*(int*)a > *(int*)b) return 1;
  13. }
  14. void zad1(int size1, int size2, int **tab) {
  15.         for (int z = 0; z < size1; z++)
  16.         {
  17.                 for (size_t i = 0; i < size1; i++)
  18.                 {
  19.                         qsort(tab[i], size2, sizeof(int), compare);
  20.                 }
  21.  
  22.                 for (int i = 0; i < size1 - 1; i++)
  23.                 {
  24.                         if (tab[i][0] > tab[i + 1][0])
  25.                         {
  26.                                 swap(tab[i], tab[i + 1]);
  27.                         }
  28.                 }
  29.         }
  30. }
  31. void printtab(int tab[], int size) {
  32.         for (int i = 0; i < size; i++)
  33.         {
  34.                 cout << tab[i] << " ";
  35.         }
  36. }
  37. void zad2(int *tab, int size) {
  38.         int bottom = 0, top = size - 1;
  39.         bool replace = true;
  40.         while (replace)
  41.         {
  42.                 replace = false;
  43.                 for (int i = bottom; i < top; i++)
  44.                 {
  45.                         if (tab[i] < tab[i + 1])
  46.                         {
  47.                                 swap(tab[i], tab[i + 1]);
  48.                                 replace = true;
  49.                         }
  50.                 }
  51.                 top--;
  52.                 for (int i = top; i > bottom; i--)
  53.                 {
  54.                         if (tab[i] > tab[i - 1])
  55.                         {
  56.                                 swap(tab[i], tab[i - 1]);
  57.                                 replace = true;
  58.                         }
  59.                 }
  60.                 bottom++;
  61.                 if (!replace)
  62.                 {
  63.                         break;
  64.                 }
  65.                 printtab(tab, size);
  66.         }
  67. }
  68.  
  69. int main()
  70. {
  71.         int z = 9;
  72.         const int s1 = 4, s2 = 5;
  73.         while (z != 0)
  74.         {
  75.                 cin >> z;
  76.                 switch (z)
  77.                 {
  78.                 case 1:
  79.                         int ** tab1;
  80.  
  81.                         tab1 = new int *[s1];
  82.                         for (int i = 0; i < s1; i++)
  83.                         {
  84.                                 tab1[i] = new int[s2];
  85.                                 for (int j = 0; j < s2; j++)
  86.                                 {
  87.                                         cin >> tab1[i][j];
  88.                                 }
  89.                         }
  90.                         zad1(s1, s2, tab1);
  91.                         for (int i = 0; i < s1; i++)
  92.                         {
  93.                                 printtab(tab1[i], s2);
  94.                         }
  95.  
  96.                         break;
  97.                 case 2:
  98.                         const int s3 = 10;
  99.                         int tab2[s3];
  100.                         for (int i = 0; i < s3; i++)
  101.                         {
  102.                                 cin >> tab2[i];
  103.                         }
  104.                         zad2(tab2, s3);
  105.                         break;
  106.                 }
  107.  
  108.  
  109.         }
  110. }
  111.