Untitled
unknown
plain_text
2 years ago
1.7 kB
12
Indexable
#include <stdio.h>
#include <stdlib.h>
// Предполагаем, что функции input, output и выделение памяти реализованы здесь.
void sort_vertical(int **matrix, int n, int m, int **result_matrix) {
int *temp = (int *)malloc(n * m * sizeof(int));
int k = 0;
for (int j = 0; j < m; j++) {
for (int i = 0; i < n; i++) {
temp[k++] = matrix[i][j];
}
if (j % 2 == 1) {
for (int start = 0, end = n - 1; start < end; start++, end--) {
int swap = temp[k - n + start];
temp[k - n + start] = temp[k - end - 1];
temp[k - end - 1] = swap;
}
}
}
k = 0;
for (int j = 0; j < m; j++) {
for (int i = 0; i < n; i++) {
result_matrix[i][j] = temp[k++];
}
}
free(temp);
}
void sort_horizontal(int **matrix, int n, int m, int **result_matrix) {
int *temp = (int *)malloc(n * m * sizeof(int));
int k = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
temp[k++] = matrix[i][j];
}
if (i % 2 != 0) {
for (int start = k - m, end = k - 1; start < end; start++, end--) {
int swap = temp[start];
temp[start] = temp[end];
temp[end] = swap;
}
}
}
k = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
result_matrix[i][j] = temp[k++];
}
}
free(temp);
}
// Предполагаем, что функции main, input, output, а также выделение и освобождение памяти реализованы здесь.
Editor is loading...
Leave a Comment