Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<locale.h>
- typedef int telem;
- typedef telem * tstr; // tstr - указатель на telem
- typedef tstr * tmatr; // tmatr - указатель на указатель на telem
- void inputmatr(tmatr a, int str, int col);
- void outputmatr(tmatr a, int str, int col);
- void sort_with_max(tmatr a, int str, int col);
- using::std::cin;
- using::std::cout;
- int main()
- {
- int i, j;
- int n; // strings
- int m; // columns
- tmatr a;
- setlocale(LC_ALL, "Russian");
- cout << "\nВведите ...";
- cin >> n >> m;
- a = new tstr[n];
- for (i = 0; i < n; ++i)
- *(a + i) = new telem[m];
- inputmatr(a, n, m);
- cout << "Исходная матрица:\n";
- outputmatr(a, n, m);
- sort_with_max(a, n, m);
- cout << "Матрица с отсортированными строками:\n";
- outputmatr(a, n, m);
- cout << '\n';
- for (int i = 0; i < n; ++i)
- delete a[i];
- delete a;
- return 0;
- }
- void inputmatr(tmatr a, int str, int col)
- {
- cout << "Введите построчно через пробел elem:" << '\n';
- cout << "двумерного массива размера " << str << "x" << col << '\n';
- cout << "AFter enter str press enter" << '\n';
- for (int i = 0; i < str; ++i)
- for (int j = 0; j < col; ++j)
- {
- telem el;
- cin >> el;
- *(*(a + i) + j) = el;
- }
- }
- void sort_with_max(tmatr a, int str, int col)
- {
- for( int j = 0; j < col; ++j)
- for (int i = str - 1; i >= col - j - 1; --i)
- {
- int maximum = i;
- for (int k = i; k >= col - j - 1; --k)
- {
- if (*(*(a + k) + j)> (*(*(a + maximum) + j))) // a[k][j] tnis is same *(*(a + k) + j) !!!
- maximum = k;
- }
- telem z = *(*(a + i) + j);
- *(*(a + i) + j) = (*(*(a + maximum) + j));
- (*(*(a + maximum) + j)) = z;
- }
- }
- void outputmatr(tmatr a, int str, int col)
- {
- for (int i = 0; i < str; ++i)
- {
- for (int j = 0; j < col; ++j)
- {
- cout.width(2);
- cout << *(*(a + i) + j) << ' ';
- }
- cout << '\n';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement