Другие языки программирования и технологии

c++. нужно нарисовать такую матрицу.

где линия там 1-ка. где пусто там 0,-ки.

что нужно прописать в
for(;;) и if() чтобы так заполнить.
поначалу заполняю ноликами. а потом как 1-ками - не могу условие придумать.
#include <algorithm>
#include <iostream>

void f(int **a, int b, int e, int n) {
    for (int c = b; c < e; ++c) {
        a[ b][c] = 1; a[b + n - 1][c] = 1;
        a[c][ b] = 1; a[c][b + n - 1] = 1;
    }
    if (n > 1) a[b + 1][ b] = 0;
    if (b) a[ b][b - 1] = 1;
    if (n - 4 > 0) f(a, b + 2, e - 2, n - 4);
}

int main() {
    int n;
    std::cout << "n? ";
    std::cin >> n;

    int **a = new int*[n];
    for (int r = 0; r < n; ++r) {
        a[r] = new int[n];
        std::fill_n(a[r], n, 0);
    }

    f(a, 0, n, n);

    for (int r = 0; r < n; ++r) {
        for (int c = 0; c < n; ++c) std::cout << ' ' << (a[r][c] ? '#' : ' ');
        std::cout << "\n";
    }

    return 0;
}



Направление спирали можно поменять изменив строки 5, 6 в функции f
Алексей Льнявин
Алексей Льнявин
81 785
Лучший ответ