СА
Сергей Агапов

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

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

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

Луназада Абдразакова
Луназада Абдразакова

#include
#include

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

Похожие вопросы
Помогите нарисовать круг штрихами на C#
Матрицы C++. Помогите пожалуйста, тут несложно
Как поменять местами столбцы в матрице. C++
как возвести квадратную матрицу в степень в c#
Дана матрица А (n,n). C#
Дана матрица А (n,n). Нужна программа на C#
C++. Переворот строк в матрице.
Помогите добавить в матрицу.. . C++ )
C++. Как можно транспонировать матрицу NxM из одномерного массива?
Помогите создать матрицу в c# нужна матрица 10 x 10 такого типа 1000 0100 0010 0001