Преобразовать матрицу так, чтобы она была симметрична относительно главной диагонали - C (СИ)
Формулировка задачи:
Помогите, напишите программу:
Задано квадратную матрицу А [4 × 4]. Превратить ее таким образом, чтобы новая матрица была симметрична относительно главной диагонали, то есть с12 = а21, с13 = а31, с14 = А41, с23 = А32 и так далее.
Решение задачи: «Преобразовать матрицу так, чтобы она была симметрична относительно главной диагонали»
textual
Листинг программы
#include "stdafx.h"
#include <stdlib.h>
int main()
{
srand(time(NULL));
int a[4][4];
printf("Matrix:\n");
for (size_t i = 0; i < 4; i++) {
for (size_t j = 0; j < 4; j++) {
a[i][j] = -10 + rand() % 20;
printf("%i\t", a[i][j]);
}
printf("\n");
}
for (size_t i = 0; i < 4; i++)
for (size_t j = 0; j < i; j++) {
int x = a[i][j];
a[i][j] = a[j][i];
a[j][i] = x;
}
printf("New matrix:\n");
for (size_t i = 0; i < 4; i++) {
for (size_t j = 0; j < 4; j++)
printf("%i\t", a[i][j]);
printf("\n");
}
getch();
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Инициализируем генератор случайных чисел
- Создаем двумерный массив и выводим исходную матрицу на экран
- Проходим по элементам матрицы в порядке обратном вложенности (сначала по столбцам, потом по строкам)
- Обмениваем значения элементов соответствующих строк
- Выводим полученную матрицу на экран
- Ждем нажатия клавиши для завершения программы