Я пытаюсь построить треугольник, в котором пользователь указал базу и высоту.
Когда эти введенные значения различаются (база! = Высота), программа теряет самообладание и застревает в цикле рисования треугольника.
Я пытался несколько раз изменить код, но, пожалуйста, относитесь ко мне как к начинающему программисту.
//BUILD TRIANGLE//
#include <string>
#include <iomanip>
#include <iostream>
int main()
{
std::cout << "\nEnter base and height:\n";
int height{0}; int base{0};
std::cin >> base >> height;
std::string bottom(base, '*');
std::string top = "*";
int middlerows = height - 1;
int middlespacechars;
std::cout << top << std::endl;
for (middlespacechars = 0;
middlerows != 1 || middlespacechars != base - 2;
++middlespacechars, --middlerows) {
std::string middlespace(middlespacechars, ' ');
std::cout << "*" << middlespace << "*\n";
}
std::cout << bottom << "\n" << std::endl;
std::cout << "^TRIANGLE\n";
std::cout << "BASE = " << base << std::endl;
std::cout << "HEIGHT = " << height << std::endl;
std::cout << "goodbye" << "\n" << std::endl;
}
Вывод полностью сшитый, со звездочками по экрану без заметной формы.
Когда я добавляю значения, где base = height, тем не менее, появляется довольно маленький прямоугольный треугольник.