关于else{}的问题

问题遇到的现象和发生背景

else后面的语句不加{}运行的话,输入2000,会输出11。但是加上{}就不会。

img

img

用代码块功能插入代码,请勿粘贴截图
我想要达到的结果
#include 
int main ()
{
    int years,leapyear;
    scanf("%d",&years);
    if(years%4 == 0 && years%100 != 0 || years%400 == 0)
    {
        leapyear = 1;
        printf("%d",leapyear);
    }
    else
        leapyear=0;
        printf("%d",leapyear);
    return 0;
}

不加括号,else只能执行一句。多个表达式要在else里必须加括号,不加括号只能算一个表达式在else里。
所以不加括号,后面的printf也会输出呀。
输出两次leapyear,即11。
有帮助的话采纳一下哦!

Else后边不加括号,默认else只执行第一句呀,因为if满足,所以不会赋值给0,也就是继续执行下边打印语句了
Else
aa;
bb;
意思就是else{aa;}bb;
打印11就是打印了两次1

img