Программа делает лишний вывод строки на экран - 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.