Транспонирование матрицы - 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]; } }
Объяснение кода листинга программы
Вот что происходит в этом коде:
- Создается матрица A размером 3x3 и инициализируется значениями 1, 2, 4; 0, 9, 5; 8, 6, 3.
- Создается матрица B такого же размера, что и A.
- Вызывается функция print_matrix, которая выводит матрицу A на экран.
- Выполняется операция транспонирования матрицы A, используя функцию transpose_matrix.
- Результат транспонирования сохраняется в матрице B.
- Выводится матрица B на экран. Функция print_matrix принимает указатель на матрицу и размер матрицы в качестве аргументов. Она использует два вложенных цикла для перебора всех элементов матрицы и вывода их на экран. Функция transpose_matrix принимает указатели на две матрицы и размер матрицы в качестве аргументов. Она использует два вложенных цикла для перебора всех элементов матрицы arr1 и сохранения их в матрице arr2 в соответствии с правилами транспонирования.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д