1. Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать.
2. Выполнить указанное в варианте задание и вывести полученный массив на печать.
C/C++
C++ Прошу помогите!!! \ Удалить столбец с номером К
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int n,m,K,**A,x,y;
do
{
cout << "Количество строк в массиве = ";
cin >> n;
}while(n < 1);
do
{
cout << "Количество столбцов в массиве = ";
cin >> m;
}while(m < 2); // чтобы после удаления остался хотя бы один столбец
// выделение памяти
A = new int * [n];
for(x = 0; x < n; x++)
A[x] = new int[m];
// для того, чтобы данные были разными при каждом запуске программы
srand(time(nullptr));
// один раз запускаем программу, так рекомендуется
rand();
// заполняем массив случайными данными
for(x = 0; x < n; x++)
for(y = 0; y < m; y++)
A[x][y] = rand() % 31 - 15; // диапазон [-15;15]
// вывод на экран массива
cout << endl;
for(x = 0; x < n; x++)
{
for(y = 0; y < m; y++)
cout << A[x][y] << '\t';
cout << endl;
}
cout << endl;
do
{
cout << "Укажите индекс столбца, который нужно удалить? От "
<< 0 << " до " << m - 1 << ": ";
cin >> K;
}while(K < 0 || K >= m);
// "удаление" столбца
for(x = 0; x < n; x++)
for(y = K; y < m - 1; y++)
A[x][y] = A[x][y+1]; // смещение влево
m--; // уменьшили количество столбцов на 1
// вывод на экран изменённого массива
for(x = 0; x < n; x++)
{
for(y = 0; y < m; y++)
cout << A[x][y] << '\t';
cout << endl;
}
return 0;
}
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int n,m,K,**A,x,y;
do
{
cout << "Количество строк в массиве = ";
cin >> n;
}while(n < 1);
do
{
cout << "Количество столбцов в массиве = ";
cin >> m;
}while(m < 2); // чтобы после удаления остался хотя бы один столбец
// выделение памяти
A = new int * [n];
for(x = 0; x < n; x++)
A[x] = new int[m];
// для того, чтобы данные были разными при каждом запуске программы
srand(time(nullptr));
// один раз запускаем программу, так рекомендуется
rand();
// заполняем массив случайными данными
for(x = 0; x < n; x++)
for(y = 0; y < m; y++)
A[x][y] = rand() % 31 - 15; // диапазон [-15;15]
// вывод на экран массива
cout << endl;
for(x = 0; x < n; x++)
{
for(y = 0; y < m; y++)
cout << A[x][y] << '\t';
cout << endl;
}
cout << endl;
do
{
cout << "Укажите индекс столбца, который нужно удалить? От "
<< 0 << " до " << m - 1 << ": ";
cin >> K;
}while(K < 0 || K >= m);
// "удаление" столбца
for(x = 0; x < n; x++)
for(y = K; y < m - 1; y++)
A[x][y] = A[x][y+1]; // смещение влево
m--; // уменьшили количество столбцов на 1
// вывод на экран изменённого массива
for(x = 0; x < n; x++)
{
for(y = 0; y < m; y++)
cout << A[x][y] << '\t';
cout << endl;
}
return 0;
}
Похожие вопросы
- Программирование C++ ПРОШУ ПОМОЧЬ!
- Прошу помогите написать код на c++, нужно сдать сегодня ?
- Прошу помочь с двумя задачами по C++. Есть код моей попытки. Буду рад если напишите проги.
- Прошу, помогите пожалуйста с C++
- Прошу помогите, C++ Задача
- ПРОШУ, ПОМОГИТЕ НАПИСАТЬ КОД C++
- C++ WINAPI помогите пожалуйста разобраться с LNK1120 при подключении к mysql
- Прошу помочь с С++!
- Рейтинг контроль. Прошу помочь
- C++, начало. Помогите понять синтаксис, ошибки.
do
{
cout << "Укажите индекс столбца, который нужно удалить? От "
<< 0 << " до " << m - 1 << ": ";
cin >> K;
} while(K < 0 || K >= m);
на
do
{
cout << "Укажите номер столбца, который нужно удалить? От "
<< 1 << " до " << m << ": ";
cin >> K;
} while(K < 1 || K > m);
K--; // чтобы превратить номер в индекс