Сформировать двумерный динамический массив, заполнить его случайными числами и вывести на печать
(Удалить столбцы, начиная со столбца К1 и до столбца К2)
C/C++
Динамический двумерный массив
// программа на языке 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;
}
#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;
}
Похожие вопросы
- Задача.Программирование.С++.Динамический двумерный массив.
- C++ программирование с использованием динамических двумерных массивов
- Двумерные массивы C++, ничего не понимаю((( Нужна помощь
- Запись и чтение двумерного массива в бинарный файл
- Двумерный массив C++
- Ввести двумерный массив A(n x m)
- Создать и вывести двумерный массив через функции
- Указатель превращается в двумерный массив. (Си)
- Заполнить двумерный массив 5*3 и найти строку с максимальным произведением элементов. C++
- Отразить двумерный массив с размером m x n относительно побочной диагонали