Написать функцию, которая транспонирует квадратную матрицу - 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;
}

Объяснение кода листинга программы

  1. Включаем заголовочный файл stdio.h для использования функций ввода-вывода
  2. Задаем константы N и M, которые определяют размерность матрицы
  3. Объявляем функцию transpose_matrix, которая будет транспонировать матрицу
  4. Внутри функции объявляем переменные i, j, x, которые будут использоваться в цикле
  5. Используем два вложенных цикла для прохода по всем элементам матрицы. Внешний цикл идет по строкам, внутренний - по столбцам
  6. Внутренний цикл проверяет, не является ли текущий элемент диагональным элементом (если i=j, то элементы обнуляются)
  7. Если условие выполняется, то текущий элемент присваивается переменной x, а затем элементы A[i][j] и A[j][i] заменяются на x
  8. В функции main создаем массив A[5][5] и инициализируем его значениями для наглядности
  9. Выводим исходную матрицу на экран с помощью двух вложенных циклов и функции printf
  10. Вызываем функцию transpose_matrix для транспонирования матрицы
  11. Выводим транспонированную матрицу на экран с помощью двух вложенных циклов и функции printf
  12. Возвращаем 0 из функции main, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы