Під вставкою у двовимірний масив заданого рядка перед рядком з номером t слід розуміти
Дано двовимірний цілочисельний масив. Вставте в нього рядок із чисел 10, перед рядком з номером t.

Щоб вставити рядок, потрібно в кожному стовпці вставити число. Для цього в кожному стовпці робимо зсув елементів вниз, починаючи з останнього у t-му. А елементу a[t][j] присвоюємо 10 у кожному стовпці.
/***********
Дано двовимірний цілочисельний масив.
Вставте в нього рядок з чисел 10 перед рядком з номером k.
***********/
#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 InsertRow(auto, int&, 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;
randomizeMatrix(arr, M, N, minRand, maxRand);
printMatrix(arr, M, N);
cout << endl;
int k;
cout << endl << "Введіть номер рядка для вставки: " << endl;
cin >> k;
int s[maxN]; // Виправлено розмір масиву (M на N)
for (int i = 0; i < N; i++) s[i] = 10; // Заповнюємо рядок десятками
if (k >= 0 && k < M) {
InsertRow(arr, M, N, k, s);
} else {
cout << "Помилка в даних." << endl;
}
cout << 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 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);
}
}
}
// Функція для вставки рядка перед k-тим рядком
void InsertRow(auto p, int &M, int N, int k, int* x) {
M++; // Збільшуємо кількість рядків
cout << endl << "Вставляємо рядок перед № " << k+1 << endl;
// Зсуваємо рядки вниз, починаючи з кінця
for (int i = M-1; i > k; i--) {
for (int j = 0; j < N; j++) {
p[i][j] = p[i-1][j];
}
}
// Вставляємо новий рядок
for (int j = 0; j < N; j++) {
p[k][j] = x[j];
}
}
При вставці у масив кількох рядків потрібно масив описувати із «запасом», кількість вибирати залежно від умови задачі.
Якщо у масив вставляється кілька рядків, то кількість рядків збільшується, тому номер останнього рядка змінюється і дорівнює n + k, де k – лічильник вставлених рядків. Тому при вставці кількох рядків потрібно після установки рядка збільшувати лічильник вставлених елементів k.
Якщо у масив вставляється два рядки, то спочатку потрібно виконати вставку перед рядком з більшим номером, а потім перед рядком з меншим номером.
Якщо у масив вставляється багато рядків (алгоритм вставки використовується в циклі), то для їх вставки масив потрібно переглядати починаючи з останнього рядка.
Вставка багатьох рядків у масив – це три вкладені цикли. Перший, зовнішній цикл переглядає рядки починаючи з останнього і перевіряє, чи потрібно перед даним рядком вставляти новий рядок. Якщо рядок вставляти потрібно, другий, середній цикл у кожному стовпці (у прикладі з параметром j) зсуває всі елементи вниз починаючи з n + k-го останнього елемента (зсув елементів вниз – це третій цикл з параметром i). Всі три цикли повинні мати різні параметри (i1, j і i)!
Дано двовимірний цілочисельний масив. Вставте в нього рядок із чисел 99 перед рядком, в якому знаходиться перший максимальний елемент, і рядок із чисел 11 перед рядком, в якому знаходиться перший мінімальний елемент.
Спочатку потрібно знайти номери рядків, в яких знаходяться найбільший (imx) і найменший (imn) елементи масиву.
Якщо imx > imn, то спочатку вставляється рядок із числами 99 перед рядком з номером imx, а потім рядок із числами 11 перед рядком з номером imn.
Якщо imx < imn, то спочатку вставляється рядок із числами 11 перед рядком з номером imn, а потім рядок із числами 99 перед рядком з номером imx.
Якщо imx = imn, тобто найбільший і найменший елементи знаходяться в одному рядку, тоді нічого у масив не вставляється.
або 
/***********
Дано двовимірний цілочисельний масив. Вставте в нього:
- рядок з чисел 99 перед рядком з першим максимальним елементом
- рядок з чисел 11 перед рядком з першим мінімальним елементом
***********/
#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 InsertRow(auto, int&, int, int, int*);
int FirstMax(auto, int, int);
int FirstMin(auto, 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;
randomizeMatrix(arr, M, N, minRand, maxRand);
printMatrix(arr, M, N);
cout << endl;
int imx = FirstMax(arr, M, N);
int imm = FirstMin(arr, M, N);
int s[maxN], s2[maxN]; // Виправлено розмір масивів
for (int i = 0; i < N; i++) {
s[i] = 99;
s2[i] = 11;
}
cout << "imx=" << imx << "; imm=" << imm << endl;
if (imx > imm) {
InsertRow(arr, M, N, imx, s);
InsertRow(arr, M, N, imm, s2);
}
else if (imx < imm) {
InsertRow(arr, M, N, imm, s2);
InsertRow(arr, M, N, imx, s);
}
else {
cout << "max & min в одному рядку.";
}
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 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);
}
}
}
// Функція для вставки рядка перед k-тим рядком
void InsertRow(auto p, int &M, int N, int k, int* x) {
M++;
cout << endl << "Вставляємо рядок перед № " << k+1 << endl;
for (int i = M-1; i > k; i--) {
for (int j = 0; j < N; j++) {
p[i][j] = p[i-1][j];
}
}
for (int j = 0; j < N; j++) {
p[k][j] = x[j];
}
}
// Функція для знаходження рядка з першим максимальним елементом
int FirstMax(auto p, int M, int N) {
int max = p[0][0], nm = 0;
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
if (p[i][j] > max) {
max = p[i][j];
nm = i;
}
}
}
return nm;
}
// Функція для знаходження рядка з першим мінімальним елементом
int FirstMin(auto p, int M, int N) {
int min = p[0][0], nm = 0;
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
if (p[i][j] < min) {
min = p[i][j];
nm = i;
}
}
}
return nm;
}
Під вставкою у двовимірний масив заданого стовпця перед стовпцем з номером t слід розуміти
Дано двовимірний цілочисельний масив. Вставте в нього рядок із чисел 99 перед стовпцем, в якому знаходиться перший максимальний елемент.

/*******************************
Дано двовимірний цілочисельний масив. Вставте в нього стовпець з чисел 99 перед стовпцем,
в якому знаходиться перший максимальний елемент.
*******************************/
#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 InsertCol(auto, int, int&, int, int*);
int FirstMax(auto, int, int);
int main() {
srand(time(0)); // Виправлено grand на srand
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;
int imx = FirstMax(arr, M, N);
int s[maxM]; // Масив для нового стовпця
for (int i = 0; i < M; i++) {
s[i] = 99;
}
cout << "Перший максимальний елемент у стовпці: " << imx << endl;
InsertCol(arr, M, N, imx, s);
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 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);
}
}
}
// Функція для вставки стовпця перед k-тим стовпцем
void InsertCol(auto p, int M, int &N, int k, int* x) {
N++;
cout << endl << "Вставляємо стовпець перед № " << k << endl;
// Зсув стовпців вправо
for (int j = N-1; j > k; j--) {
for (int i = 0; i < M; i++) {
p[i][j] = p[i][j-1];
}
}
// Вставка нового стовпця
for (int i = 0; i < M; i++) {
p[i][k] = x[i];
}
}
// Функція для знаходження першого стовпця з максимальним елементом
int FirstMax(auto p, int M, int N) {
int max = p[0][0], nm = 0;
for (int j = 0; j < N; j++) {
for (int i = 0; i < M; i++) {
if (p[i][j] > max) {
max = p[i][j];
nm = j;
}
}
}
return nm;
}
При вставці у масив кількох стовпців потрібно масив описувати із «запасом», розмір вибирати залежно від умови задачі.
Якщо у масив вставляється кілька стовпців, то кількість стовпців збільшується, тому номер останнього стовпця змінюється і дорівнює m + k - 1, де k – лічильник вставлених стовпців. Тому при вставці кількох стовпців потрібно після установки кожного стовпця збільшувати лічильник вставлених стовпців k.
Якщо у масив вставляється два стовпці, то спочатку потрібно виконати вставку перед стовпцем з більшим номером, а потім перед стовпцем з меншим номером.
Якщо у масив вставляється багато стовпців (алгоритм вставки використовується в циклі), то для їх вставки масив потрібно переглядати починаючи з останнього стовпця.
Вставка багатьох стовпців у масив – це три вкладені цикли. Перший, зовнішній цикл (у прикладі з параметром j1) переглядає колонки починаючи з останнього і перевіряє, чи потрібно перед даним стовпцем вставляти новий стовпець. Якщо стовпець вставляти потрібно, другий, середній цикл у кожному рядку (у прикладі з параметром i) зсуває всі елементи вправо починаючи з m + k - 1 - останнього (зсув елементів вправо – це третій цикл з параметром j). Всі три цикли повинні мати різні параметри (j1, i і j)!
Дано двовимірний цілочисельний масив. Вставте в нього одномірний масив після всіх стовпців з парними номерами.

/***********
Дано двовимірний цілочисельний масив. Вставте одновимірний масив після всіх стовпців з парними номерами.
***********/
#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 InsertCol(auto, int, 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;
randomizeMatrix(arr, M, N, minRand, maxRand);
printMatrix(arr, M, N);
cout << endl;
int s[maxM]; // Масив для вставки (квадрати індексів)
for (int i = 0; i < M; i++) {
s[i] = i * i;
}
// Вставка після парних стовпців (обхід справа наліво)
for (int j = N - 1; j >= 0; j--) {
if (j % 2 == 0) {
InsertCol(arr, M, N, j + 1, s); // Вставка після стовпця j
}
}
printMatrix(arr, M, N);
return 0;
}
Варіант 1
- Дано двовимірний масив. Вставте в нього стовпець з нулів після стовпця з номером 3.
- Дано двовимірний масив. Вставте в нього рядок із заданою послідовністю чисел перед усіма рядками з непарними номерами.
Варіант 2
- Дано двовимірний масив. Вставте в нього рядок із заданою послідовністю чисел перед рядком з номером s.
- Дано двовимірний масив. Вставте в нього стовпець із цифр 100 після всіх стовпців з парними номерами.
Варіант 3
- Дано двовимірний масив. Вставте в нього стовпець із заданою послідовністю чисел після останнього стовпця, у якому є нулі.
- Дано двовимірний масив. Вставте в нього рядок із заданою послідовністю чисел перед усіма рядками, у яких кількість парних елементів більша, ніж задане число.
Варіант 4
- Дано двовимірний масив. Вставте в нього рядок із чисел 10 перед першим рядком, сума елементів якого менша за задане число.
- Дано двовимірний масив. Вставте в нього стовпець із заданою послідовністю чисел після всіх стовпців, у яких усі числа додатні.
Варіант 5
- Дано двовимірний масив. Вставте в нього одномірний масив після стовпця, у якому знаходиться останній із максимальних елементів.
- Дано двовимірний масив. Вставте в нього рядок із чисел 2 перед усіма рядками з 3-го по шостий.
Варіант 6
- Дано двовимірний масив. Вставте в нього рядок із чисел 3 після першого з рядків, сума елементів якого менша за задане число.
- Дано двовимірний масив. Вставте в нього одномірний масив перед усіма стовпцями, у яких є від’ємні елементи.
Варіант 7
- Дано двовимірний масив. Вставте в нього одномірний масив перед першим рядком із нулями.
- Дано двовимірний масив. Вставте в нього рядок із чисел 4 після усіх рядків, у яких парних чисел більше, ніж непарних.
Варіант 8
- Дано двовимірний масив. Вставте в нього рядок із чисел 5 після першого рядка, у якому серед елементів є прості числа.
- Дано двовимірний масив. Вставте в нього стовпець із чисел 7 перед усіма стовпцями, у яких кількість від’ємних елементів більша за задане число.