Как работает 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? Что я сделал неправильно? - C (СИ)»

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");

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

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

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


СОХРАНИТЬ ССЫЛКУ