Написать функцию, которая транспонирует квадратную матрицу - C (СИ)
Формулировка задачи:
Написать функцию, которая транспонирует квадратную матрицу.Входной параметр матрица
На си.
Решение задачи: «Написать функцию, которая транспонирует квадратную матрицу»
textual
Листинг программы
#include <stdio.h> //Написать функцию, которая транспонирует квадратную матрицу.Входной параметр матрица const int N = 5; const int M = 5; void transpose_matrix(int A[N][M]) { int i, j, x; for(i = 0; i < N; i++){ for(j = i; j < M ; j++){ if(i != j){ x = A[i][j]; A[i][j] = A[j][i]; A[j][i] = x; } } } } int main() { int i, j, A[5][5] = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}}; for(i = 0; i < N; i++){//вывод исходной матрицы на экран просто для наглядности,если этого не for(j = 0; j < M; j++)//требуется-удалите строки 21-27 printf("%3d", A[i][j]); printf("\n"); } printf("\n\n"); transpose_matrix(A); for(i = 0; i < N; i++){ for(j = 0; j < M; j++) printf("%3d", A[i][j]); printf("\n"); } return 0; }
Объяснение кода листинга программы
- Включаем заголовочный файл stdio.h для использования функций ввода-вывода
- Задаем константы N и M, которые определяют размерность матрицы
- Объявляем функцию transpose_matrix, которая будет транспонировать матрицу
- Внутри функции объявляем переменные i, j, x, которые будут использоваться в цикле
- Используем два вложенных цикла для прохода по всем элементам матрицы. Внешний цикл идет по строкам, внутренний - по столбцам
- Внутренний цикл проверяет, не является ли текущий элемент диагональным элементом (если i=j, то элементы обнуляются)
- Если условие выполняется, то текущий элемент присваивается переменной x, а затем элементы A[i][j] и A[j][i] заменяются на x
- В функции main создаем массив A[5][5] и инициализируем его значениями для наглядности
- Выводим исходную матрицу на экран с помощью двух вложенных циклов и функции printf
- Вызываем функцию transpose_matrix для транспонирования матрицы
- Выводим транспонированную матрицу на экран с помощью двух вложенных циклов и функции printf
- Возвращаем 0 из функции main, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д