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

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

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

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

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


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

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

9   голосов , оценка 4.222 из 5
Похожие ответы