Как дописать программу на c++, чтобы на экран выводилась буква М или W правильно?
Задание: Напишите программу, удовлетворяющую всем следующим требованиям:
- Получить два входных значения. a. Целое число, представляющее размер буквы (M или W) для печати. Оно представляет собой количество строк всего письма, которое необходимо распечатать. b. Символ, указывающий на печать M или W или "Неправильный ввод!". Если этот символ равен M, то выводится форма M (см. ниже); если этот символ равен W, то выводится форма W. В противном случае программа выведет "Неправильный ввод!".
- Фигуру M можно представить как два равнобедренных треугольника без базовых ребер, правая нижняя вершина первого треугольника перекрывает левую нижнюю вершину второго треугольника. Фигура W - это перевернутая фигура M. ПРИМЕЧАНИЕ: 1: Если высота меньше (или равна) 1, следует вывести сообщение "Неправильный вход!". 2: M или W должны быть чувствительны к регистру. (то есть если входной символ "m" или "n", то результат должен быть "Неправильный вход!").
Вот что пока получилось у меня, но не могу понять как выводить крайние диагональные линии
#include <iostream>
using namespace std;
int main() {
int height, i, j;
char letter;
cout << "Please input the height (integer):" << endl;
cin >> height;
int p1, p2;
p1=1;
p2=height*2-1;
if (height <= 1){
cout << "Wrong input!" << endl;
}
else {
cout << "Do you want to print M or W?:" << endl;
cin >> letter;
if (letter=='M') {
for(i=1;i<=height;i++)
{
for (j=1; j<=height*2;j++ )
{
if (j==p1||j==p2)
{
cout << "*";
}
else
{
cout << " ";
}
}
p1++;
p2--;
cout << endl;
}
}
// else {} for W
return 0;
}
Ответы (1 шт):
Давайте думать.
* *
* * * *
* * * *
* * * *
* * *
В каждой строке глазами считаем, сколько пробелов между звездочками:
4 - 7 -
3 1 5 1
2 3 3 3
1 5 1 5
0 7 - 7
Теперь берем цикл по строкам:
for (int i = 0; i < 5; i++)
{
// std::cout << ...
}
Для начала, ваша задача - написать такой цикл, который выводил бы числа из таблицы выше. Вместо - годится любое число, но здесь удобно использовать -1.
Например, первая колонка - это будет 4 - i. (Но это работает только для высоты 5. Как думаете, как сделать для произвольной высоты?)
Когда сделаете, поменяйте код так, чтобы вместо чисел выводилось такое колчиество пробелов, а между ними - звездочки. Дальше останется только убрать лишние звездочки в первой и последней строках.

