Заполнить массив по кругу

88
26 октября 2021, 06:30
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "RUSSIAN");
int const n = 10;
int A[n][n];
int i = 1, j, k, p = n / 2;
for (k = 1; k <= p; k++)
{
    for (j = k - 1; j < n - k + 1; j++) A[k - 1][j] = i++;
    for (j = k; j < n - k + 1; j++) A[j][n - k] = i++;
    for (j = n - k - 1; j >= k - 1; --j) A[n - k][j] = i++;
    for (j = n - k - 1; j >= k; j--) A[j][k - 1] = i++;
}
if (n % 2 == 1) A[p][p] = n * n;
for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)
    {
        cout << A[i][j] << " ";
            if (j == n - 1) cout << "\n";
        }
    return 0;
}

Вот здесь заполнено, но не в нужную сторону, помогите развернуть пожалуйста, очень срочно требуется(((

Answer 1
#include <iostream>
#include <cstring>
using namespace std;
#define N 10
int main()
{
    int arr[N][N];
    int cnt = 0;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            arr[i][j] = 0;
        }
    }
    // левая грань
    for (int i = 0; i < N; i++)
    {
        arr[i][0] = cnt++;
    }
    // нижняя грань
    for (int i = 1; i < N; i++)
    {
        arr[N - 1][i] = cnt++;
    }
    // правая грань
    for (int i = N - 1; i >= 0; i--)
    {
        arr[i][N - 1] = cnt++;
    }
    // верхняя грань
    for (int i = N - 2; i > 0; i--)
    {
        arr[0][i] = cnt++;
    }
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            cout << arr[i][j] << " ";
            if (j == N - 1) 
            {
                cout << "\n";
            }
        }
    }
    return 0;
}
READ ALSO
Можно ли в Qt делать необычные окна?

Можно ли в Qt делать необычные окна?

надо написать программу на Qt/C++ (ОС Arch Linux), которая по сути является оконным менеджеромНо только окна там должны перемещаться по "кубу" (только...

222
Практическое применение std::string_view

Практическое применение std::string_view

Мне понятно, что std::string_view это строка, имеющая только указатель и длину, без владения, управления памятью и даже без завершающего нуля — и поэтому...

186
Соединить две (или более) текстуры в одну

Соединить две (или более) текстуры в одну

Долгое время воевал один с этой задачей, но больше сил нетПростая задача - объединить две (или более) картинки в одну, чтобы наложить на эту...

111
Несколько функций main

Несколько функций main

Легален ли следующий код с точки зрения стандарта?

99