Дублирующийся вывод сообщения в цикле - C (СИ)
Формулировка задачи:
Привет. Около полугода регулярно нахожу для себя ответы на этом форуме - за что всем спасибо. Но сейчас возник вопрос, на который ответа не нашел. В связи с чем - зарегистрировался.
Возможно вопрос глупый.
Суть проблемы:
есть бесконечный цикл, в нем оператор else который либо разрывает цикл, либо пишет об ошибке. По какой то причине в случаевторого
варианта сообщение выводится дважды - почему? как исправить? Заранее спасибо за ваши буквы.#include <stdio.h> #include<locale.h> int menu(void) { printf("1\n2\n3\n4\n"); char c; do { scanf ("%c",&c); if ( c=='1'|| c=='2'|| c=='3'|| c=='4' ) break; else printf ("Неправильный выбор\n"); } while (1); return (0); } int main (void) { setlocale (LC_ALL, ""); do { menu(); char t=0; scanf("%c",&t); if(t=='4') break; } while(1); }
Решение задачи: «Дублирующийся вывод сообщения в цикле»
textual
Листинг программы
scanf ("\n%c",&c);
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Происходит считывание символа с помощью функции scanf()
- Считанный символ сохраняется в переменной типа char с именем
c
Таким образом, данный код позволяет пользователю ввести один символ, который затем сохраняется в переменнойc
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д