Транспонирование матрицы - 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 в соответствии с правилами транспонирования.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д