Загрузка данных


#include <stdio.h>

#define N 15
#define M 13

void transform(int *buf, int **matr, int n, int m);
void make_picture(int **picture, int n, int m);
void reset_picture(int **picture, int n, int m);

int main() {
    int picture_data[N][M];
    int *picture[N];

    transform((int *)picture_data, picture, N, M);
    make_picture(picture, N, M);

    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            if (j)
                printf(" ");
            printf("%d", picture[i][j]);
        }
        if (i != N - 1)
            printf("\n");
    }

    return 0;
}

void make_picture(int **picture, int n, int m) {
    int sun_data[6][5] = {{0, 6, 6, 6, 6},
                          {0, 0, 6, 6, 6},
                          {0, 0, 6, 6, 6},
                          {0, 6, 0, 0, 6},
                          {0, 0, 0, 0, 0},
                          {0, 0, 0, 0, 0}};

    reset_picture(picture, n, m);

    for (int i = 0; i < m; i++) {
        picture[0][i] = 1;
        picture[n - 1][i] = 1;
    }

    for (int i = 0; i < n; i++) {
        picture[i][0] = 1;
        picture[i][m - 1] = 1;
        picture[i][6] = 1;
    }

    for (int i = 0; i < m; i++)
        picture[7][i] = 1;

    picture[2][3] = 3;
    picture[2][4] = 3;
    picture[3][2] = 3;
    picture[3][3] = 3;
    picture[3][4] = 3;
    picture[3][5] = 3;
    picture[4][2] = 3;
    picture[4][3] = 3;
    picture[4][4] = 3;
    picture[4][5] = 3;
    picture[5][3] = 3;
    picture[5][4] = 3;

    picture[6][3] = 7;
    picture[6][4] = 7;
    picture[8][3] = 7;
    picture[8][4] = 7;
    picture[9][3] = 7;
    picture[9][4] = 7;
    picture[10][2] = 7;
    picture[10][3] = 7;
    picture[10][4] = 7;
    picture[10][5] = 7;

    for (int i = 0; i < 6; i++) {
        for (int j = 0; j < 5; j++) {
            if (sun_data[i][j] != 0)
                picture[i + 1][j + 8] = sun_data[i][j];
        }
    }
}

void reset_picture(int **picture, int n, int m) {
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            picture[i][j] = 0;
}

void transform(int *buf, int **matr, int n, int m) {
    for (int i = 0; i < n; i++)
        matr[i] = buf + i * m;
}