Scanf, ввожу не цифры, а буквы, чтобы вызвать условный оператор else - C (СИ)
Формулировка задачи:
Как сделать так? допустим я ввожу цифру не от 0 до 100, а какое нибудь слово, после чего вызывался бы условный оператор else?
Листинг программы
- printf("Enter your current percent in the class: ");
- scanf("%lf", ¤tGrade);
- if ( (currentGrade>=0) && (currentGrade<=100 ) )
- currentGrade = currentGrade;
- else {
- printf("Invalid formatting. Ending program.");
- _Exit (EXIT_SUCCESS);
- }
Решение задачи: «Scanf, ввожу не цифры, а буквы, чтобы вызвать условный оператор else»
textual
Листинг программы
- int n = scanf("%lf", ¤tGrade);
- if ( n == 1 && currentGrade >= 0 && currentGrade <= 100 )
- currentGrade = currentGrade;
- else {
- printf("Invalid formatting. Ending program.");
- _Exit (EXIT_SUCCESS);
- }
Объяснение кода листинга программы
int n = scanf(
%lf, ¤tGrade);
- ввод значения с помощью функции scanf в переменную currentGrade. Возвращает количество успешно введенных значений, в данном случае ожидается 1 значение.if ( n == 1 && currentGrade >= 0 && currentGrade <= 100 )
- проверка условия, что было введено корректное значение. Если условие выполняется, то значение currentGrade не изменяется.currentGrade = currentGrade;
- присваивание текущего значения переменной currentGrade.else
- если условие в предыдущем операторе не выполнилось.printf(
Invalid formatting. Ending program.);
- вывод сообщения об ошибке ввода._Exit (EXIT_SUCCESS);
- завершение программы с кодом успеха.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д