Вывод массива в виде пирамиды
Есть одномерный массив array и его размер array_size.
Код, выводящий массив в виде треугольника:
int i = 0;
for (int j = 1; true; ++j) {
for (int k = 0; k < j; ++k) {
cout << '\t' << array[i];
++i;
if (i == array_size) {
cout << std::endl;
return;
}
}
cout << std::endl;
}
Как его изменить, чтобы массив выводился в форме пирамиды?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Что-то типа
void out(int* a, int N, int w = 5)
{
int m = ceil((sqrt(1+8*N)-1)/2);
for(int n = 0, row = 1;n < N;++row)
{
for(int i = 0; i < (m-row)*w/2; ++i) cout << " ";
for(int i = 0; i < row && n < N; ++i) cout << setw(w) << left << a[n++];
cout << endl;
}
}
С выравниванием в пределах поля поиграйтесь сами...
Вот как это примерно выглядит - https://ideone.com/qDargx
