Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cstdlib> // Для rand() і srand()
- #include <ctime> // Для time()
- using namespace std;
- // Функція для введення або генерації масиву
- void initializeArray(vector<vector<int>> &array, int rows, int cols, bool randomInit) {
- if (randomInit) {
- // Ініціалізація випадковими числами
- srand(time(0)); // Ініціалізація генератора випадкових чисел
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < cols; j++) {
- array[i][j] = rand() % 21 - 10; // Числа в діапазоні від -10 до 10
- }
- }
- } else {
- // Ініціалізація з клавіатури
- cout << "Введіть елементи масиву (" << rows << "x" << cols << "):\n";
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < cols; j++) {
- cin >> array[i][j];
- }
- }
- }
- }
- // Функція для виведення масиву на екран
- void printArray(const vector<vector<int>> &array) {
- for (const auto &row : array) {
- for (int elem : row) {
- cout << elem << " ";
- }
- cout << endl;
- }
- }
- // Функція для перевірки рядка на умову (рівність додатних і від'ємних елементів)
- bool isRowBalanced(const vector<int> &row) {
- int positiveCount = 0, negativeCount = 0;
- for (int elem : row) {
- if (elem > 0) {
- positiveCount++;
- } else if (elem < 0) {
- negativeCount++;
- }
- }
- return positiveCount == negativeCount;
- }
- // Функція для вставки рядків з нулів
- void insertZeroRows(vector<vector<int>> &array, int cols) {
- for (int i = 0; i < array.size(); i++) {
- if (isRowBalanced(array[i])) {
- // Вставка ряду з нулів після поточного ряду
- vector<int> zeroRow(cols, 0);
- array.insert(array.begin() + i + 1, zeroRow);
- i++; // Пропустити щойно вставлений рядок
- }
- }
- }
- int main() {
- while (true) {
- int rows, cols;
- char choice;
- // Введення кількості рядків і стовпців
- cout << "Введіть кількість рядків: ";
- cin >> rows;
- cout << "Введіть кількість стовпців: ";
- cin >> cols;
- // Створення двовимірного масиву
- vector<vector<int>> array(rows, vector<int>(cols));
- // Вибір способу ініціалізації масиву
- cout << "Як ви хочете ініціалізувати масив? (r - випадково, m - вручну): ";
- cin >> choice;
- bool randomInit = (choice == 'r');
- // Ініціалізація масиву
- initializeArray(array, rows, cols, randomInit);
- // Виведення початкового масиву
- cout << "\nПочатковий масив:\n";
- printArray(array);
- // Вставка рядків з нулів
- insertZeroRows(array, cols);
- // Виведення результату
- cout << "\nМасив після вставки рядків з нулів:\n";
- printArray(array);
- // Запит на продовження чи завершення програми
- cout << "\nБажаєте продовжити? (y/n): ";
- char continueChoice;
- cin >> continueChoice;
- if (continueChoice != 'y') {
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement