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);- завершение программы с кодом успеха.