Чтобы транспонировать прямоугольную матрицу, необходимо поменять местами элементы матрицы относительно её главной диагонали. Главная диагональ - это линия, содержащая элементы, у которых номер строки равен номеру столбца.
Для решения этой задачи можно использовать различные методы, включая тривиальные и эффективные алгоритмы. Наиболее простой и понятный способ - это создать новую матрицу, где строки первоначальной матрицы будут столбцами новой матрицы, и наоборот.
Приведу пример, демонстрирующий, как транспонировать матрицу размером MxN:
#include <stdio.h> #define MAX_SIZE 100 void transposeMatrix(int matrix[MAX_SIZE][MAX_SIZE], int rows, int columns) { int i, j; int transposed[MAX_SIZE][MAX_SIZE]; // Перебираем элементы первоначальной матрицы и помещаем их на новые позиции for (i = 0; i < rows; i++) { for (j = 0; j < columns; j++) { transposed[j][i] = matrix[i][j]; } } // Выводим на экран транспонированную матрицу printf("Транспонированная матрица:n"); for (i = 0; i < columns; i++) { for (j = 0; j < rows; j++) { printf("%d ", transposed[i][j]); } printf("n"); } } int main() { int matrix[MAX_SIZE][MAX_SIZE]; int rows, columns, i, j; printf("Введите количество строк матрицы: "); scanf("%d", &rows); printf("Введите количество столбцов матрицы: "); scanf("%d", &columns); printf("Введите элементы матрицы:n"); for (i = 0; i < rows; i++) { for (j = 0; j < columns; j++) { scanf("%d", &matrix[i][j]); } } transposeMatrix(matrix, rows, columns); return 0; }
Программа запрашивает у пользователя размеры матрицы (количество строк и столбцов) и элементы матрицы. Затем она использует функцию transposeMatrix
для транспонирования матрицы и вывода результата на экран.
Таким образом, приведенная программа позволяет транспонировать прямоугольную матрицу и выводит результат на экран. Вы можете использовать этот код в своей программе или изменить его в соответствии с вашими потребностями.