Під видаленням k-го рядка з двовимірного масиву потрібно розуміти:
Для цього в кожному стовпці видаляється k-й елемент шляхом зміщення всіх наступних елементів вгору на одну позицію. Тобто зовнішній цикл буде по стовпцях (другому індексу), а внутрішній цикл (по першому індексу) буде зміщувати вгору всі елементи, починаючи з (k + 1)-го.
Під видаленням k-го стовпця з двовимірного масиву потрібно розуміти:
Для цього в кожному рядку видаляється k-й елемент шляхом зміщення всіх наступних елементів вліво на одну позицію. Тобто зовнішній цикл буде по рядках (по першому індексу), а внутрішній цикл (по другому індексу) буде зміщувати вліво всі елементи, починаючи з (k + 1)-го.
Дано двовимірний масив цілих чисел. Видалити з нього рядок з номером rowToDelete і стовпець з номером colToDelete.

#include <iostream>
#include <ctime>
using namespace std;
const int maxM = 10;
const int maxN = 10;
void printMatrix(auto, int, int);
void randomizeMatrix(auto, int, int, int, int);
void deleteRow(auto, int, int&, int&);
void deleteCol(auto, int, int&, int&);
int main() {
srand(time(0));
int arr[maxM][maxN];
int M = 5, N = 5; // Розміри за замовчуванням
cout << "Введіть розміри матриці: " << endl;
cin >> M >> N;
int minRand = 0, maxRand = 9;
cout << "Введіть діапазон значень елементів матриці: " << endl;
cin >> minRand >> maxRand;
int rowToDelete = 0;
int colToDelete = 0;
cout << "Введіть номер рядка для видалення: " << endl;
cin >> rowToDelete;
cout << "Введіть номер стовпця для видалення: " << endl;
cin >> colToDelete;
randomizeMatrix(arr, M, N, minRand, maxRand);
printMatrix(arr, M, N);
cout << endl;
cout << "Видалення рядка " << rowToDelete << endl;
deleteRow(arr, rowToDelete, M, N);
printMatrix(arr, M, N);
cout << "Видалення стовпця " << colToDelete << endl;
deleteCol(arr, colToDelete, M, N);
printMatrix(arr, M, N);
return 0;
}
// Функція для виведення матриці
void printMatrix(auto p, int M, int N) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
cout << p[i][j] << "\t";
}
cout << endl;
}
}
// Функція для видалення рядка
void deleteRow(auto arr, int rowToDelete, int &M, int &N) {
// Зсув рядків вгору
for (int j = 0; j < N; j++) {
for (int i = rowToDelete; i < M - 1; i++) {
arr[i][j] = arr[i + 1][j];
}
}
M--; // Зменшення кількості рядків
}
// Функція для видалення стовпця
void deleteCol(auto arr, int colToDelete, int &M, int &N) {
// Зсув стовпців вліво
for (int i = 0; i < M; i++) {
for (int j = colToDelete; j < N - 1; j++) {
arr[i][j] = arr[i][j + 1];
}
}
N--; // Зменшення кількості стовпців
}
// Функція для заповнення матриці випадковими значеннями
void randomizeMatrix(auto p, int M, int N, int minRand, int maxRand) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
p[i][j] = minRand + rand() % (maxRand - minRand + 1); // Виправлено random() на rand()
}
}
}
Якщо з масиву видаляються два рядки, то спочатку потрібно видалити рядок з більшим номером, а потім — з меншим.
Якщо з масиву видаляється багато рядків (алгоритм видалення використовується в циклі), то для видалення рядка потрібно переглядати починаючи з останнього.
Функції ті самі, змінилася головна.
Дано двовимірний цілий масив. Видалити з нього всі рядки з парними номерами.
або 
/***********
Дано двовимірний цілочисельний масив. Видалити з нього всі рядки з парними номерами.
***********/
#include <iostream>
#include <ctime>
using namespace std;
const int maxM = 100;
const int maxN = 100;
void printMatrix(auto, int, int); // Виведення масиву на екран
void randomizeMatrix(auto, int, int, int, int); // Заповнення масиву випадковими числами
void deleteRow(auto, int, int&, int&); // Видалення k-го рядка матриці
int main() {
srand(time(0));
int arr[maxM][maxN];
int M = 5, N = 5; // Початкові розміри матриці
cout << "Введіть розміри матриці: " << endl;
cin >> M >> N;
int minRand = 0, maxRand = 9;
cout << "Введіть діапазон значень елементів матриці: " << endl;
cin >> minRand >> maxRand;
randomizeMatrix(arr, M, N, minRand, maxRand);
printMatrix(arr, M, N);
cout << endl;
// Видалення рядків з парними номерами (з кінця до початку)
for (int i = M - 1; i >= 0; i--) {
if (i % 2 == 1) { // Нумерація рядків з 0, тому парні індекси - це непарні номери
deleteRow(arr, i, M, N);
}
}
cout << endl << "Змінений масив:" << endl;
printMatrix(arr, M, N);
return 0;
}
// Функція для виведення матриці
void printMatrix(auto p, int M, int N) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
cout << p[i][j] << "\t"; // Виведення елементу з табуляцією
}
cout << endl; // Перехід на новий рядок
}
}
// Функція для видалення рядка
void deleteRow(auto arr, int rowToDelete, int &M, int &N) {
// Зсув елементів вгору для видалення рядка
for (int j = 0; j < N; j++) {
for (int i = rowToDelete; i < M - 1; i++) {
arr[i][j] = arr[i + 1][j]; // Копіювання елементів з нижчого рядка
}
}
M--; // Зменшення кількості рядків
}
// Функція для заповнення матриці випадковими значеннями
void randomizeMatrix(auto p, int M, int N, int minRand, int maxRand) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
p[i][j] = minRand + rand() % (maxRand - minRand + 1); // Виправлено random() на rand()
}
}
}
Якщо з масиву видаляються два стовпці, то спочатку потрібно видалити стовпець з більшим номером, а потім — з меншим.
Якщо з масиву видаляється багато стовпців (алгоритм видалення використовується в циклі), то для видалення стовпців потрібно переглядати починаючи з останнього.
Функції ті самі, змінилася головна.
Дано двовимірний масив цілих чисел. Видалити з нього всі стовпці з парними номерами.

/***********
Дано двовимірний цілочисельний масив. Видалити з нього всі стовпці з непарними номерами.
***********/
#include <iostream>
#include <ctime>
using namespace std;
const int maxM = 100;
const int maxN = 100;
void printMatrix(auto, int, int); // Виведення масиву на екран
void randomizeMatrix(auto, int, int, int, int); // Заповнення масиву випадковими числами
void deleteCol(auto, int, int&, int&); // Видалення стовпця
int main() {
srand(time(0));
int arr[maxM][maxN];
int M = 5, N = 5; // Початкові розміри матриці
cout << "Введіть розміри матриці (M N): " << endl;
cin >> M >> N;
int minRand = 0, maxRand = 9;
cout << "Введіть діапазон значень елементів матриці: " << endl;
cin >> minRand >> maxRand;
randomizeMatrix(arr, M, N, minRand, maxRand);
printMatrix(arr, M, N);
cout << endl;
// Видалення стовпців з непарними номерами (з кінця до початку)
for (int j = N - 1; j >= 0; j--) {
if (j % 2 != 0) { // Перевірка на непарність (індекси з 0)
deleteCol(arr, j, M, N);
}
}
cout << endl << "Змінений масив:" << endl;
printMatrix(arr, M, N);
return 0;
}
// Функція для виведення матриці
void printMatrix(auto p, int M, int N) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
cout << p[i][j] << "\t";
}
cout << endl;
}
}
// Функція для видалення стовпця
void deleteCol(auto arr, int colToDelete, int &M, int &N) {
// Зсув елементів вліво для видалення стовпця
for (int i = 0; i < M; i++) {
for (int j = colToDelete; j < N - 1; j++) {
arr[i][j] = arr[i][j + 1];
}
}
N--; // Зменшення кількості стовпців
}
// Функція для заповнення матриці випадковими значеннями
void randomizeMatrix(auto p, int M, int N, int minRand, int maxRand) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
p[i][j] = minRand + rand() % (maxRand - minRand + 1);
}
}
}
Варіант 1
- Дано двовимірний масив. Видалити з нього рядок, у якому знаходиться перше парне число.
- Дано двовимірний масив. Видалити з нього два стовпці, один з номером k1, а другий — з номером k2 (k1 < k2).
Варіант 2
- Дано двовимірний масив. Видалити з нього стовпець, у якому знаходиться останнє непарне число.
- Дано двовимірний масив. Видалити з нього два рядки: один з номером s1, а другий — з номером s2 (s1 < s2).
Варіант 3
- Дано двовимірний масив. Видалити з нього рядок, у якому знаходиться перший з мінімальних елементів.
- Дано двовимірний масив. Видалити з нього всі стовпці з другого по п’ятий.
Варіант 4
- Дано двовимірний масив. Видалити з нього стовпець, у якому знаходиться останній з максимальних елементів.
- Дано двовимірний масив. Видалити з нього всі рядки з третього по шостий.
Варіант 5
- Дано двовимірний масив. Видалити з нього перший рядок, сума елементів якого більша за задане число.
- Дано двовимірний масив. Видалити з нього всі стовпці, номери яких кратні 2.
Варіант 6
- Дано двовимірний масив. Видалити з нього останній зі стовпців, у якому є нулі.
- Дано двовимірний масив. Видалити з нього всі рядки, у яких кількість парних елементів більша за задане число.
Варіант 7
- Дано двовимірний масив. Видалити з нього останній рядок, у якому всі елементи додатні.
- Дано двовимірний масив. Видалити з нього всі стовпці, у яких є від’ємні елементи.
Варіант 8
- Дано двовимірний масив. Видалити з нього перший стовпець, у якому є парні числа.
- Дано двовимірний масив. Видалити з нього всі рядки, в яких усі елементи не кратні 3.
Варіант 9
- Дано двовимірний масив. Видалити з нього перший рядок, у якому сума елементів додатна.
- Дано двовимірний масив. Видалити з нього всі стовпці з k1-го по k2-й.
Варіант 10
- Дано двовимірний масив. Видалити з нього останній стовпець, у якому кількість додатних елементів дорівнює заданому числу.
- Дано двовимірний масив. Видалити з нього всі рядки з k1-го по k2-й номери.
Варіант 11
- Дано двовимірний масив. Видалити з нього останній рядок, у якому сума елементів найменша.
- Дано двовимірний масив. Видалити з нього всі стовпці, номери яких кратні 3.
Варіант 12
- Дано двовимірний масив. Видалити з нього останній стовпець, у якому сума елементів найбільша.
- Дано двовимірний масив. Видалити з нього всі рядки, у яких кількість непарних елементів дорівнює заданому числу.
Варіант 13
- Дано двовимірний масив. Видалити з нього перший рядок, у якому сума елементів найбільша.
- Дано двовимірний масив. Видалити з нього всі стовпці, у яких сума елементів більша за задане число.
Варіант 14
- Дано двовимірний масив. Видалити з нього перший стовпець, у якому сума елементів найменша.
- Дано двовимірний масив. Видалити з нього всі рядки, у яких кількість додатних елементів більша за кількість від’ємних елементів.
Варіант 15
- Дано двовимірний масив. Видалити з нього перший рядок, у якому кількість парних елементів найбільша.
- Дано двовимірний масив. Видалити з нього всі стовпці, у яких сума парних елементів більша за суму непарних елементів.
Варіант 16
- Дано двовимірний масив. Видалити з нього перший стовпець, у якому кількість непарних елементів найменша.
- Дано двовимірний масив. Видалити з нього всі рядки, які складаються тільки з від’ємних елементів.
Варіант 17
- Дано двовимірний масив. Видалити рядок і стовпець, на перетині яких знаходиться елемент з найбільшим модулем.
- Дано двовимірний масив. Видалити з нього всі стовпці, у яких кількість парних елементів найбільша.