Как работает else if? Что я сделал неправильно? - C (СИ)

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

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

Недавно начал учить С. Сегодня тренеровался и написал код:
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. int energy;
  6. scanf("%d",&energy);
  7. if(energy<10)
  8. printf("> low energy");
  9. else if(energy==10)
  10. printf("> norm energy");
  11. else if(energy>10)
  12. printf("> energy too high");
  13. else{
  14. printf("> system error");
  15. }
  16. return 0;
  17. }
Всё работало почти нормально, кроме того, что при вводе неправильной информации (каких нибуть символов) должно было вывести "system error", но вместо этого выводит "low energy". Возможно я не совсем разобрался с тем как работает else if, что я сделал неправильно?

Решение задачи: «Как работает else if? Что я сделал неправильно?»

textual
Листинг программы
  1. if (scanf("%d", &energy) != 1)
  2. {
  3.     printf("> system error");
  4.     return -1;
  5. }
  6.  
  7. if (energy<10)
  8.     printf("> low energy");
  9. else if (energy == 10)
  10.     printf("> norm energy");
  11. else
  12.     printf("> energy too high");

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

  1. Программа начинает с проверки ввода пользователя с помощью функции scanf(). Если пользователь ввел что-то, что не является целым числом, или ввел несколько значений, программа выведет сообщение об ошибке и завершит свое выполнение.
  2. Затем программа проверяет значение переменной energy. Если оно меньше 10, программа выведет сообщение > low energy.
  3. Если значение energy равно 10, программа выведет сообщение > norm energy.
  4. В противном случае, программа выведет сообщение > energy too high.

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


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

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

15   голосов , оценка 4.133 из 5

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

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

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