#include <iostream>
#include <ctime>
#include <cmath>
using namespace std;
int ** memory_allocate (int x, int y){ // выделение памяти и создание двумерного динамического массива
int ** A = new int* [x];
for( int i = 0; i < x; i++){
A[i] = new int [y];
}
return A;
}
void fill_arr (int **Arr, int x, int y){ // заполнение массива
cout << "Вывод заполненого массива: ";
cout << endl;
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
Arr[i][j] = rand() % 50;
cout << Arr[i][j] << "\t";
}
cout << endl;
}
}
void result(int **Arr, int x, int y){ // вывод массива
for (int i = 0; i < x; i++) {
for (int j = i; j < x; j++) {
if (Arr[i][j] > Arr[i][j + 1]) {
int temp = Arr[i][j + 1];
Arr[i][j] = Arr[i][j];
Arr[i][j + 1] = temp;
}
}
}
cout << "Вывод сортированного массива: ";
cout << endl;
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++){
cout << Arr[i][j] << "\t";
}
cout << endl;
}
}
void memory_free (int **Arr, int x) { // освобождение памяти
for( int i = 0; i < x; i++){
free(Arr[i]);
}
free(Arr);
}
int main()
{
srand(time(NULL));
int lines, columns;
cout<< "Введите кол-во строк: ";
cin >> lines;
cout<< "Введите кол-во столбцов: ";
cin >> columns;
int **arr = memory_allocate(lines , columns);
fill_arr(arr, lines, columns);
result(arr, lines, columns);
memory_free(arr, lines);
return 0;
}