#include "pch.h" #include using namespace std; int compare(const void * a, const void * b) { if (*(int*)a < *(int*)b) return -1; if (*(int*)a == *(int*)b) return 0; if (*(int*)a > *(int*)b) return 1; } void zad1(int size1, int size2, int **tab) { for (int z = 0; z < size1; z++) { for (size_t i = 0; i < size1; i++) { qsort(tab[i], size2, sizeof(int), compare); } for (int i = 0; i < size1 - 1; i++) { if (tab[i][0] > tab[i + 1][0]) { swap(tab[i], tab[i + 1]); } } } } void printtab(int tab[], int size) { for (int i = 0; i < size; i++) { cout << tab[i] << " "; } } void zad2(int *tab, int size) { int bottom = 0, top = size - 1; bool replace = true; while (replace) { replace = false; for (int i = bottom; i < top; i++) { if (tab[i] < tab[i + 1]) { swap(tab[i], tab[i + 1]); replace = true; } } top--; for (int i = top; i > bottom; i--) { if (tab[i] > tab[i - 1]) { swap(tab[i], tab[i - 1]); replace = true; } } bottom++; if (!replace) { break; } printtab(tab, size); } } int main() { int z = 9; const int s1 = 4, s2 = 5; while (z != 0) { cin >> z; switch (z) { case 1: int ** tab1; tab1 = new int *[s1]; for (int i = 0; i < s1; i++) { tab1[i] = new int[s2]; for (int j = 0; j < s2; j++) { cin >> tab1[i][j]; } } zad1(s1, s2, tab1); for (int i = 0; i < s1; i++) { printtab(tab1[i], s2); } break; case 2: const int s3 = 10; int tab2[s3]; for (int i = 0; i < s3; i++) { cin >> tab2[i]; } zad2(tab2, s3); break; } } }