на с++ 1. Створити матрицю розміром 5х5, заповнити випадковими числами в межах від -10 до +10. Вивести на екран у вигляді таблиці. Замінити елементи головної діагоналі нулями. Вивести оновлену матрицю. 2. Для натуральної матриці розміром NXN знайти суму всіх елементів, не більших 20, які лежать вище головної діагоналі. 3. Є двовимірний масив з парною кількістю рядків. Поміняти місцями перший рядок з другим, третій з четвертим тощо. Вивести результуючу таблицю. 4. Квадратну матрицю розміром NxN називають правильною, якщо в ній немає квадратів 2х2, що складаються лише з 0 або лише з 1. Перевірити, чи є створена матриця правильною.
Ответы
Відповідь:
#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;
}