Предмет: Информатика, автор: nmarcuk690

на с++ 1. Створити матрицю розміром 5х5, заповнити випадковими числами в межах від -10 до +10. Вивести на екран у вигляді таблиці. Замінити елементи головної діагоналі нулями. Вивести оновлену матрицю. 2. Для натуральної матриці розміром NXN знайти суму всіх елементів, не більших 20, які лежать вище головної діагоналі. 3. Є двовимірний масив з парною кількістю рядків. Поміняти місцями перший рядок з другим, третій з четвертим тощо. Вивести результуючу таблицю. 4. Квадратну матрицю розміром NxN називають правильною, якщо в ній немає квадратів 2х2, що складаються лише з 0 або лише з 1. Перевірити, чи є створена матриця правильною.​

Ответы

Автор ответа: rosandreyev
0

Відповідь:

#include <iostream>

#include <cstdlib>

#include <ctime>

const int N = 5;

// Функція для виведення матриці на екран

void printMatrix(int matrix[N][N]) {

   for (int i = 0; i < N; ++i) {

       for (int j = 0; j < N; ++j) {

           std::cout << matrix[i][j] << '\t';

       }

       std::cout << std::endl;

   }

   std::cout << std::endl;

}

// Задача 1: Замінити елементи головної діагоналі нулями

void replaceDiagonal(int matrix[N][N]) {

   for (int i = 0; i < N; ++i) {

       matrix[i][i] = 0;

   }

}

// Задача 2: Знайти суму елементів вище головної діагоналі, не більших 20

int sumAboveDiagonal(int matrix[N][N]) {

   int sum = 0;

   for (int i = 0; i < N; ++i) {

       for (int j = i + 1; j < N; ++j) {

           if (matrix[i][j] <= 20) {

               sum += matrix[i][j];

           }

       }

   }

   return sum;

}

// Задача 3: Поміняти рядки місцями

void swapRows(int matrix[N][N]) {

   for (int i = 0; i < N; i += 2) {

       for (int j = 0; j < N; ++j) {

           std::swap(matrix[i][j], matrix[i + 1][j]);

       }

   }

}

// Задача 4: Перевірка правильної матриці

bool isProperMatrix(int matrix[N][N]) {

   for (int i = 0; i < N - 1; ++i) {

       for (int j = 0; j < N - 1; ++j) {

           if (matrix[i][j] == matrix[i][j + 1] && matrix[i][j] == matrix[i + 1][j] && matrix[i][j] == matrix[i + 1][j + 1]) {

               return false;

           }

       }

   }

   return true;

}

int main() {

   srand(time(nullptr));

   // Задача 1

   int matrix[N][N];

   for (int i = 0; i < N; ++i) {

       for (int j = 0; j < N; ++j) {

           matrix[i][j] = rand() % 21 - 10;  // Генеруємо випадкові числа в межах від -10 до 10

       }

   }

   std::cout << "Початкова матриця:" << std::endl;

   printMatrix(matrix);

   replaceDiagonal(matrix);

   std::cout << "Матриця після заміни головної діагоналі нулями:" << std::endl;

   printMatrix(matrix);

   // Задача 2

   int sum = sumAboveDiagonal(matrix);

   std::cout << "Сума елементів вище головної діагоналі, не більших 20: " << sum << std::endl;

   // Задача 3

   swapRows(matrix);

   std::cout << "Матриця після обміну рядків:" << std::endl;

   printMatrix(matrix);

   // Задача 4

   bool proper = isProperMatrix(matrix);

   std::cout << "Матриця " << (proper ? "є" : "не є") << " правильною." << std::endl;

   return 0;

}

Похожие вопросы
Предмет: Математика, автор: kysilulia107