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

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

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

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

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

textual
Листинг программы
if (scanf("%d", &energy) != 1)
{
    printf("> system error");
    return -1;
}
 
if (energy<10)
    printf("> low energy");
else if (energy == 10)
    printf("> norm energy");
else
    printf("> energy too high");

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

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

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

15   голосов , оценка 4.133 из 5
Похожие ответы