До сих пор код пр oduces это:
*
**
***
****
*****
******
*******
********
*********
**********
Который выглядит довольно хорошо прямоугольного треугольника, так что я думаю, что вы на правильном пути. Чтобы сделать изображение, которое у вас было выше, вам нужно бросить несколько пробелов и убедиться, что каждая строка имеет одинаковую длину. Если все в порядке, я думаю, что то, что вы просите, проще с помощью только одного цикла. Попробуйте это:
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
int main() {
int height = 4;
int line = height * 4;
for(int i = height; i > 0; --i){
string stars (i, '*');
int space = line - (i * 2);
string spaces (space, ' ');
cout << stars << spaces << stars << endl;
}
}
Этот код производит:
**** ****
*** ***
** **
* *
, который, кажется, есть еще несколько пробелов, чем ваш пример там, но вы можете исправить это, добавив переменную перед циклом для максимума длина пространства, которую вы хотите, а затем уменьшаете ее на два каждый раз через цикл.
Я не знаю, кто голосовал. Это было очень полезно для меня – user3015519
Нет проблем, это просто доказывает, что мы можем найти глупых людей повсюду даже в SO. – deepmax