Транспонирование матрицы - C (СИ) (71022)

Узнай цену своей работы

Формулировка задачи:

Помогите на чистом си) Транспонироватьь матрицу Например: А= 1 2 4 0 9 5 8 6 3 Должна получится матрица B = 1 0 8 2 9 6 4 5 3

Решение задачи: «Транспонирование матрицы»

textual
Листинг программы
#include <stdio.h>
 
void print_matrix(int (*arr)[], int size);
void transpose_matrix(int (*arr1)[], int (*arr2)[], int size);
 
int main(void)
{
  int A[3][3]={{1,2,4},{0,9,5},{8,6,3}};
  int B[3][3];
  
  print_matrix(A, 3);
  printf("\n");
  transpose_matrix(A, B, 3);
  print_matrix(B, 3);
  printf("\n");
}
 
void print_matrix(int (*arr)[], int size) {
  int (*arrPtr)[size] = arr;
  int i, j;
 
  for (i = 0; i < size; i++) {
    for (j = 0; j < size; j++)
      printf("%d ", (*arrPtr)[j]);
    arrPtr++;
    printf("\n");
  }
}
 
void transpose_matrix(int (*arr1)[], int (*arr2)[], int size) {
  int (*arrPtr1)[size] = arr1;
  int (*arrPtr2)[size] = arr2;
  int i, j;
 
  for (i = 0; i < size; i++) {
    for (j = 0; j < size; j++)
      arrPtr2[j][i] = arrPtr1[i][j];
  }
}

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

Вот что происходит в этом коде:

  1. Создается матрица A размером 3x3 и инициализируется значениями 1, 2, 4; 0, 9, 5; 8, 6, 3.
  2. Создается матрица B такого же размера, что и A.
  3. Вызывается функция print_matrix, которая выводит матрицу A на экран.
  4. Выполняется операция транспонирования матрицы A, используя функцию transpose_matrix.
  5. Результат транспонирования сохраняется в матрице B.
  6. Выводится матрица B на экран. Функция print_matrix принимает указатель на матрицу и размер матрицы в качестве аргументов. Она использует два вложенных цикла для перебора всех элементов матрицы и вывода их на экран. Функция transpose_matrix принимает указатели на две матрицы и размер матрицы в качестве аргументов. Она использует два вложенных цикла для перебора всех элементов матрицы arr1 и сохранения их в матрице arr2 в соответствии с правилами транспонирования.

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


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

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

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