Повернуть матрицу симметрично относительно главной диагонали - C (СИ)
Формулировка задачи:
Задание: Повернуть матрицу симметрично относительно главной диагонали.
Написать программу, в которой введение массива выполняется в отдельной функции. Затем этот массив передается в главную функцию. Главная функция передает массив в другую функцию, которая обрабатывает массив и выводит результат. Ввод массива оформить в виде функции VVOD (), обработку и вывод массива в виде функции ОВR ().
Решение задачи: «Повернуть матрицу симметрично относительно главной диагонали»
textual
Листинг программы
#include <stdio.h> int** cr_matr(int col,int str) //Создаем матрицу размера col*str { int **a = (int **) calloc(str,sizeof(int *)); for (int i=0;i < str;i++) a[i] = (int *) calloc(col,sizeof(int)); return a; } void VVOD(int **arr, int m, int n) { for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) scanf("%i",&arr[i][j]); } void OBR (int **arr,int m,int n) { int i,j,temp; for(i=0; i<n; ++i) for(j=i; j<m; ++j) { temp=arr[i][j]; arr[i][j]=arr[j][i]; arr[j][i]=temp; } for(int i = 0; i < n;i++) for(int j = 0; j < m; j++) printf("%i ",arr[i][j]); printf("\n"); } void main() { int **arr,col,str; puts("Введите количество столбцов:"); scanf("%i",&col); puts("Введите количество строк:"); scanf("%i",&str); arr = cr_matr(col,str); VVOD(arr,col,str); OBR(arr,col,str); }
Объяснение кода листинга программы
- Создаем матрицу размера col*str, используя функцию cr_matr.
- С помощью функции VVOD заполняем матрицу значениями.
- С помощью функции OBR поворачиваем матрицу симметрично относительно главной диагонали.
- Выводим результат на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д