Нужно напечатать треугольник. С клавиатуры вводится высота и ширина основания треугольника
Я написала код. Но он неправильно работает. Я не понимаю, какой цикл я делаю неправильно. Я думаю, что проблема в том, что в первом цикле я иду до col
а во втором до row
. Но как по другому сделать, я не знаю.
std::cout << "Enter row: ";
int row;
std::cin >> row;
std::cout << "Enter col: ";
int col;
std::cin >> col;
for (int row = 0; row < col; ++row)
{
for (int col = 0; col < row; ++col)
std::cout << "*";
std::cout << "\n";
}
row 3 col 4 * ** ***
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
1 ) Вы теряете заданное количество строк, поэтому сделайте первый цикл
for (int i = 0; i < row; ++i)
2 ) Не вполне ясно, как должен выглядеть треугольник - если так, как у вас, прямоугольный с левым вертикальным ребром, то рассчитывайте количество звездочек, например, так:
for (int j = 0; j < 1 + i*(col-1)/(row-1); ++j)
std::cout << "*";
Формула выбрана из тех соображений, что в первой строке должна быть одна звездочка, в последней col
звездочек, а в остальных - линейная интерполяция между этими величинами.