Зеркально отобразить элементы матрицы относительно побочной диагонали - C (СИ)
Формулировка задачи:
использовать функцию которая зеркально отобразит элементы матрицы относительно побочной диагонали
Решение задачи: «Зеркально отобразить элементы матрицы относительно побочной диагонали»
textual
Листинг программы
#include <stdio.h> //заголовочный файл который содержит функции ввода/вывода
#include <time.h>
#include <stdlib.h>
#define N 10
void func(int**& ARR, int size_arr) {
int temp;
int i = 0, j;
for (;i < size_arr; i++)
for (j = 0; j < size_arr-(i+1); j++) {
temp = ARR[i][j];
ARR[i][j] = ARR[size_arr - j -1][size_arr - i-1];
ARR[size_arr - j - 1][size_arr - i - 1] = temp;
}
}
int main() {
int i = 0, j;
srand((unsigned int)time(NULL));
int** ARR = (int**)malloc(sizeof(int*)*N);
for (;i < N; i++) {
ARR[i] = (int*)malloc(sizeof(int)*N);
for (j = 0; j < N; j++)
printf("%d\t", (ARR[i][j] = rand() % 100));
printf("\n");
}
func(ARR, N);
printf(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n");
printf(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n");
for (i=0;i < N; i++) {
for (j = 0; j < N; j++)
printf("%d\t", ARR[i][j]);
printf("\n");
free(ARR[i]);
}
free(ARR);
return NULL;
}
Объяснение кода листинга программы
В данном коде:
- Объявлены три переменные: N, i, j. N - это размер матрицы, i и j - это индексы для обхода матрицы.
- Затем идет функция func, которая будет зеркально отображать элементы матрицы относительно побочной диагонали. В этой функции используются два вложенных цикла, которые проходят по всем элементам матрицы. Внутри этих циклов происходит обмен элементов.
- В функции main создается матрица ARR размерности NxN. Все элементы этой матрицы инициализируются случайными числами от 0 до 99.
- Затем вызывается функция func, которая зеркально отображает элементы матрицы относительно побочной диагонали.
- После этого выводится исходная матрица, а затем матрица после применения функции func.
- В конце программы все элементы матрицы освобождаются с помощью функции free.