Программа делает лишний вывод строки на экран - C (СИ)
Формулировка задачи:
Непонятно почему при вводе символа q, выводится Step 3 дважды?
Вот пример кода:
Скрин:
Листинг программы
- #include <stdio.h>
- #include <locale.h>
- #include <ctype.h>
- #include <stdbool.h>
- int main(void)
- {
- setlocale(LC_ALL, "rus");
- setlocale(LC_NUMERIC, "C");
- char ch;
- while ((ch = getchar()) != '#')
- {
- if (ch != '\n')
- printf("Step 1\n");
- if (ch == 'q')
- printf("Step 2\n");
- if (ch == 'b')
- break;
- if (ch != 'c')
- printf("Step 3\n");
- }
- printf("Done!\n");
- return 0;
- }
Решение задачи: «Программа делает лишний вывод строки на экран»
textual
Листинг программы
- if (ch != 'c' && ch != '\n')
- printf("Step 3\n");
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Переменная
ch
принимает значение, которое не равно 'c' и не равно символу новой строки '\n'. - В случае выполнения условия из пункта 1, выполняется действие - вывод на экран строки
Step 3
. Таким образом, код выполняет проверку значения переменнойch
и, если оно не соответствует ожидаемому, выводит на экран строкуStep 3
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д