Программа делает лишний вывод строки на экран - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д