Вопрос задан 02.09.2020 в 18:45. Предмет Информатика. Спрашивает Дюсьмекеев Николай.

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; }
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ошибка в программе

Похоже, в вашей программе есть несколько ошибок, которые могут привести к некорректной выдаче результата. Давайте разберем их по порядку.

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; } ```

Теперь ваша программа должна выводить ожидаемый результат:

``` * ** *** * ** *** ```

Попробуйте использовать исправленный код и проверьте, работает ли программа как ожидается. Если у вас все еще возникают проблемы, пожалуйста, предоставьте дополнительную информацию о том, что именно не работает, и я постараюсь помочь вам.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос