Как напечатать таблицу в с++?
Дано: 2 0 4 2 3 3 6 4 2 6 6 6 8 6 4 2 9 9 9 9 6 строк чётных и 2 строки нечётных.Блока 4. Нужно на экране напечатать данную выше таблицу. Вот мой код:
//напечатать таблицу
#include<iostream>
using namespace std;
int main()
{
const int N = 4; //число блоков
for (int i = 1; i <= N; i++) {//блоки
for (int j = 1; j <= i; j++) //нечетные строки
cout << 1 + i << " ";
cout << endl;
for (int j = 1; j <= i; j++) //четные строки
cout << 1 - j << " ";
cout << endl;
}
return 0;
}
Помогите исправить,при этом коде выводит в некоторых местах отрицательные числа.
Вот так должна выглядеть таблица:
Ответы (2 шт):
уф, я кажется поседел пытаясь понять, что требуется, но кажется понял
вот что требуется сделать изложенное русским языком:
есть массив чисел, надо вывести последовательно числа в столбец блоками по 2 строки, при этом кол-во чисел в стоках каждого последующего блока больше на 1 чем у предыдущего!!!
Если это так, то в приведённом автором коде вообще не видно где эти числа (в описании есть, в коде нет), в коде перебираются лишь позиции, т.е. приведённый код не соответствует задаче
По идее должно так:
int arr[] = {2, 0, 4, 2, 3, 3, 6, 4, 2, 6, 6, 6, 8, 6, 4, 2, 9, 9, 9, 9, 6,};
int size = 21;
int pos = 0;
while (pos < size) {
// вывести 2 строки
for (int row = 0; row < 2; row++) {
// вывести строку из row_size символов начиная с позиции pos
for (int i = 0; i < row_size; i++) {
if (pos < size)
std::cout << arr[pos + i] << " ";
}
std::cout << std::endl;
pos += row_size;
}
// увеличить размер строки
row_size ++;
}
Хорошо,cпасибо)Я уже сам дописал программу:
// напечатать таблицу
int main(){
const int N = 4; //число блоков
for (int i = 1; i <= N; i++)
{//блоки
for (int j = i; j; j--)
cout << j*2 << " ";
cout << endl;
for (int j = i; j; j--) //четные строки
cout << (i-1)*3 << " ";
cout << endl;
}
}