Scanf, ввожу не цифры, а буквы, чтобы вызвать условный оператор else - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Как сделать так? допустим я ввожу цифру не от 0 до 100, а какое нибудь слово, после чего вызывался бы условный оператор else?
Листинг программы
  1. printf("Enter your current percent in the class: ");
  2. scanf("%lf", &currentGrade);
  3. if ( (currentGrade>=0) && (currentGrade<=100 ) )
  4. currentGrade = currentGrade;
  5. else {
  6. printf("Invalid formatting. Ending program.");
  7. _Exit (EXIT_SUCCESS);
  8. }

Решение задачи: «Scanf, ввожу не цифры, а буквы, чтобы вызвать условный оператор else»

textual
Листинг программы
  1.     int n = scanf("%lf", ¤tGrade);
  2.     if ( n == 1 && currentGrade >= 0 && currentGrade <= 100 )
  3.         currentGrade = currentGrade;
  4.     else {
  5.         printf("Invalid formatting. Ending program.");
  6.         _Exit (EXIT_SUCCESS);
  7.     }

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

  1. int n = scanf(%lf, &currentGrade); - ввод значения с помощью функции scanf в переменную currentGrade. Возвращает количество успешно введенных значений, в данном случае ожидается 1 значение.
  2. if ( n == 1 && currentGrade >= 0 && currentGrade <= 100 ) - проверка условия, что было введено корректное значение. Если условие выполняется, то значение currentGrade не изменяется.
  3. currentGrade = currentGrade; - присваивание текущего значения переменной currentGrade.
  4. else - если условие в предыдущем операторе не выполнилось.
  5. printf(Invalid formatting. Ending program.); - вывод сообщения об ошибке ввода.
  6. _Exit (EXIT_SUCCESS); - завершение программы с кодом успеха.

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


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

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

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы