Программа делает лишний вывод строки на экран - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Непонятно почему при вводе символа q, выводится Step 3 дважды? Вот пример кода:
Листинг программы
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <ctype.h>
  4. #include <stdbool.h>
  5. int main(void)
  6. {
  7. setlocale(LC_ALL, "rus");
  8. setlocale(LC_NUMERIC, "C");
  9. char ch;
  10. while ((ch = getchar()) != '#')
  11. {
  12. if (ch != '\n')
  13. printf("Step 1\n");
  14. if (ch == 'q')
  15. printf("Step 2\n");
  16. if (ch == 'b')
  17. break;
  18. if (ch != 'c')
  19. printf("Step 3\n");
  20. }
  21. printf("Done!\n");
  22. return 0;
  23. }
Скрин:

Решение задачи: «Программа делает лишний вывод строки на экран»

textual
Листинг программы
  1. if (ch != 'c' && ch != '\n')
  2.             printf("Step 3\n");

Объяснение кода листинга программы

В данном коде выполняется следующая последовательность действий:

  1. Переменная ch принимает значение, которое не равно 'c' и не равно символу новой строки '\n'.
  2. В случае выполнения условия из пункта 1, выполняется действие - вывод на экран строки Step 3. Таким образом, код выполняет проверку значения переменной ch и, если оно не соответствует ожидаемому, выводит на экран строку Step 3.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы