// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
class matrix{
private: int **a, n, m;
void set_mem(){
a = new int*[n];
for (int i = 0; i < n; i++) a[i] = new int[m];
}
void set_value(){
srand(time(0));
for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) a[i][j] = rand() % 20 - 10;
}
void set_n_and_m(int p1, int p2){
n = p1, m = p2;
}
public:
void show(char*s){
cout << endl << s << endl;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++) {
cout.width(4);
cout << a[i][j] << " ";
}
cout << endl;
}
}
void spec_sort(){
for (int t = 0; t < n; t++){
for (int j = 0; j < m; j++){
for (int i = 0; i <n - 1; i++){
if (a[n - (n - i - 1)][j]>a[n - (n - i)][j]){
swap(a[n - (n - i - 1)][j], a[n - (n - i)][j]);
}
}
}
}
}
matrix(int p1, int p2){
set_n_and_m(p1, p2);
set_mem();
set_value();
}
~matrix(){
for (int i = 0; i < n; i++) delete[] a[i];
delete[] a;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(0, "");
cout << endl << "Задача написана на заказ для пользователя NOKIARULIT.spaces.ru" << endl << "Автор: sasa961.spaces.ru ; vk.com/sasa961" << endl << endl;
int n, m;
cout << "Введите количество строк: "; cin >> n;
cout << "Введите количество столбцов: "; cin >> m;
matrix*a = new matrix(n, m);
a->show("Исходная матрица: ");
a->spec_sort();
a->show("Отсортированная по заданию: ");
delete a;
cin.clear();
cin.sync();
cin.get();
return 0;
}