Untitled

mail@pastecode.io avatar
unknown
plain_text
8 months ago
1.7 kB
5
Indexable
Never
#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, а также выделение и освобождение памяти реализованы здесь.
Leave a Comment