
C++ Написать программу, используя два раза while, которая выдает следующее: * ** *** **** *****
****** ******* ******** Я написал, но не работает. Может найдете ошибку в моей? (ошибка не в синтаксисе, а в выдаче результата) #include int main() { int verticalDown=0; int horizontalRight=0; int countColumns=1; while(verticalDown<8) { while(horizontalRight { std::cout << "*"; horizontalRight++; } countColumns++; verticalDown++; std::cout << "\n"; } return 0; }

Ответы на вопрос

Ошибка в программе
Похоже, в вашей программе есть несколько ошибок, которые могут привести к некорректной выдаче результата. Давайте разберем их по порядку.
1. Ошибка во втором цикле while: ```cpp while(horizontalRight+ ``` Ваш код содержит незавершенное условие для второго цикла while. На основе предоставленного кода, я предполагаю, что вы хотите, чтобы цикл выполнялся до тех пор, пока значение `horizontalRight` меньше `countColumns`. Поэтому, чтобы исправить ошибку, вам нужно добавить второе условие в цикл: ```cpp while(horizontalRight < countColumns) ```
2. Неправильное обновление счетчика `horizontalRight`: ```cpp horizontalRight++; ``` Ваш код увеличивает `horizontalRight` на 1 после каждой итерации внутреннего цикла while. Однако, это приведет к неправильным результатам, потому что вы хотите, чтобы значение `horizontalRight` равнялось количеству звездочек в каждой строке. Чтобы исправить ошибку, вам нужно увеличивать `horizontalRight` на 1 при каждом выводе звездочки: ```cpp horizontalRight++; ```
3. Неправильное обновление счетчика `countColumns`: ```cpp countColumns++; ``` Ваш код увеличивает `countColumns` на 1 после каждой итерации внешнего цикла while. Однако, это приведет к неправильным результатам, так как вы хотите, чтобы значение `countColumns` увеличивалось на 1 с каждой новой строкой. Чтобы исправить ошибку, вам нужно увеличивать `countColumns` на 1 перед началом внутреннего цикла while: ```cpp countColumns++; ```
Исправленный код
Вот исправленный вариант вашего кода:
```cpp
#include
int main() { int verticalDown = 0; int horizontalRight = 0; int countColumns = 1;
while(verticalDown < 8) { horizontalRight = 0; // Сбрасываем значение horizontalRight перед каждой новой строкой
while(horizontalRight < countColumns) { std::cout << "*"; horizontalRight++; }
countColumns++; verticalDown++; std::cout << "\n"; }
return 0; } ```
Теперь ваша программа должна выводить ожидаемый результат:
``` * ** *** * ** *** ```
Попробуйте использовать исправленный код и проверьте, работает ли программа как ожидается. Если у вас все еще возникают проблемы, пожалуйста, предоставьте дополнительную информацию о том, что именно не работает, и я постараюсь помочь вам.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili