Практика 3 задание 4

PHOTO EMBED

Mon Oct 07 2024 09:33:33 GMT+0000 (Coordinated Universal Time)

Saved by @Yakostoch

#include <iostream>
using namespace std;

int main()
{
    int n;
    int m;

    std::cout << "Enter desired max of the array: " << endl;
    cin >> n;
    cin >> m;

    int* arr = new int [n * m]; // создание размерности матрицы из данных с клавиатуры
    
    for (int i = 0; i < n * m; ++i) {
        cin >> arr[i];
    }

    for (int i = 0; i < n * m; i++) {
        for (int j = 0; j < n * m - 1; j++) {
            if (arr[j] > arr[j + 1]) {

                arr[j] += arr[j + 1];
                arr[j + 1] = arr[j] - arr[j + 1];
                arr[j] = arr[j] - arr[j + 1];

            }
        }
    }

    int matrix[20][20];
    bool b_matrix[20][20];
    for (int i = 0; i < 20; ++i)
        for (int j = 0; j < 20; ++j)
            b_matrix[i][j] = false;

    int speed_x = 1;
    int speed_y = 0;
    int x = 0, y = 0;
    int turn_counter = 0;
}
for (int i = 0; i < n * m; ++i) {
        matrix[x][y] = arr[i];
        b_matrix[x][y] = true;

        if (b_matrix[x + speed_x][y + speed_y] or (0 > speed_x + x or speed_x + x > n - 1) or (0 > speed_y + y or speed_y + y > m - 1)) {
            turn_counter += 1;
            switch (turn_counter % 4)
            {
            case 1:
            {
                speed_x = 0;
                speed_y = 1;
                break;
            }
            case 2:
            {
                speed_x = -1;
                speed_y = 0;
                break;
            }
            case 3:
            {
                speed_x = 0;
                speed_y = -1;
                break;
            }
            case 0:
            {
                speed_x = 1;
                speed_y = 0;
                break;
            }
            default:
                break;
            }
        }
        x += speed_x;
        y += speed_y;

    }

    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            cout << matrix[j][i] << " ";
        }
        cout << endl;
    }

    return 0;
content_copyCOPY