Вопрос задан 13.06.2023 в 17:50. Предмет Информатика. Спрашивает Фукс Артём.

Симметричен ли массив? Дано число n и массив размером n×n. Проверьте, является ли этот массив

симметричным относительно главной диагонали. Выведите слово "YES", если массив симметричный, и слово "NO" в противном случае. Входные данные В первой строке дано значение n≤10. Далее идут n строк по n чисел — элементы матрицы. Выходные данные Ответ на задачу. Примеры Ввод Вывод 3 0 0 0 0 1 0 0 0 2 YES
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мицевич Лёша.

Решение на C(си):
#define _CRT_SECURE_NO_WARNINGS // если вы используете visual studio

#include <stdio.h>

#include <stdlib.h>

int main() {

int n;

scanf("%d", &n);

int** mat;

mat = (int**)malloc(n * sizeof(int*));

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

 mat[i] = (int*)malloc(n * sizeof(int));

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

  scanf("%d", &mat[i][j]);

 }

}

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

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

  if (mat[i][j] != mat[j][i]) {

   printf("NO");

   return 0;

  }

 }

}

printf("YES");

return 0;

}

Решение на C++:

#include <iostream>

#include <vector>

using namespace std;

int main() {

int n;

cin >> n;

vector<vector<int>> mat(n, vector<int>(n));

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

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

  cin >> mat[i][j];

 }

}

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

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

  if (mat[i][j] != mat[j][i]) {

   cout << "NO";

   return 0;

  }

 }

}

cout << "YES";

return 0;

}

Решение задач проверил на сайте https://informatics.msk.ru/mod/statements/view3.php?id=282&chapterid=355#1

P.S. если вам нужно решение на другом языке, я могу дополнить свое решение

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи можно сравнить элементы матрицы с их соответствующими симметричными элементами относительно главной диагонали. Если все пары элементов равны, то массив является симметричным.

Вот пример кода на Python, который решает данную задачу:

python
n = int(input()) # Вводим значение n # Создаем двумерный массив размером n x n matrix = [] for _ in range(n): row = list(map(int, input().split())) matrix.append(row) # Проверяем симметричность массива is_symmetric = True for i in range(n): for j in range(i + 1, n): if matrix[i][j] != matrix[j][i]: is_symmetric = False break # Выводим результат if is_symmetric: print("YES") else: print("NO")

Пример работы программы:

makefile
Ввод: 3 0 0 0 0 1 0 0 0 2 Вывод: YES

В этом примере массив 3x3 является симметричным относительно главной диагонали, поэтому выводится "YES".

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос