#c
#c
Вопрос:
Я должен составлять цифры на основе входного значения в начале программы.
Именно этот раздел доставляет мне трудности.
for (int i = a; i > 0; i--)//Diagonal line up and to the right
{
for (int j = i; j > 0; j--)
{
cout << " ";
}
cout << "*" << endl;
}
cout << endl;
Он отключен на единицу, и я понятия не имею, как его исправить.
Входное число равно 7
Вывод:
-------*
------*
-----*
----*
---*
--*
-*
-
Что он должен распечатать:
------*
-----*
----*
---*
--*
-*
*
Тире — это пробелы.
Ответ №1:
Вот более простой способ решить эту проблему:
while(a--)
std::cout << std::string(a, ' ') << "*n";
Ответ №2:
Вы просто сбились на 1. В каждой строке должно быть на один пробел меньше перед *
. Поэтому вычтите 1 из i
цикла, который печатает пробелы.
for (int i = a; i > 0; i--)//Diagonal line up and to the right
{
for (int j = i-1; j > 0; j--)
{
cout << " ";
}
cout << "*" << endl;
}
cout << endl;