C/C++

Динамический двумерный массив

Сформировать двумерный динамический массив, заполнить его случайными числами и вывести на печать
(Удалить столбцы, начиная со столбца К1 и до столбца К2)
// программа на языке C++
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int n,m;

void my_set_size(int & num, const char c[3])
{
do
{
cout << c << " = ";
cin >> num;
}while(num < 1);
}

int ** my_new_int_2()
{
int ** U;
U = new int*[n];
for(int p = 0; p < n; p++)
U[p] = new int[m];
return U;
}

void my_delete_int_2(int ** V)
{
if(V == (int**) nullptr) exit(1);
for(int y = 0; y < n; y++)
{
if(V[y] == (int*) nullptr) exit(1);
delete [] V[y];
V[y] = (int*) nullptr;
}
delete [] V;
V = (int**) nullptr;
n = m = 0;
}

void my_create(int ** T)
{
srand(time(nullptr));
rand();
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
T[i][j] = rand() % 26; // [0;25]
}

void my_print(int ** R)
{
cout << endl;
for(int x = 0; x < n; x++)
{
for(int y = 0; y < m; y++)
cout << R[x][y] << '\t';
cout << endl;
}
cout << endl;
}

void my_remove(int ** A, const int K1, const int K2)
{
int u = K2 - K1 + 1;
for(int x = 0; x < n; x++)
{
for(int y = K1; y < m - u; y++)
{
A[x][y] = A[x][y+u];
}
}
m -= u;
}

int main()
{
int **A;
my_set_size(n,"n");
my_set_size(m,"m");
A = my_new_int_2();
my_create(A);
my_print(A);
int K1,K2;
cout << "Введите индексы столбцов, которые следует удалить." << endl;
cout << "Индексы от " << 0 << " до " << m - 1 << '.' << endl;
do
{
my_set_size(K1, "K1");
}while(K1 > m - 1);
do
{
my_set_size(K2, "K2");
}while(K2 < K1);
my_remove(A,K1,K2);
my_print(A);
my_delete_int_2(A);
return 0;
}
Rio Grande
Rio Grande
65 190
Лучший ответ