一个C语言的IF语句问题.麻烦大哥帮我,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/06 12:53:10
写程序判断某年是闰年
main()
{int year,leap;
scanft("%d",&year);
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=1;
else leap=0;;}
else
leap=1;}
else
leap=0;
if(leap)
printf("%d is",year);
else
printf("%d is not",year);
printf("a leap year\n);
}
我对这题的IF和ELSE 的配对关系不明确,有嵌IF语句麻烦从第4句解释下,因为我自学,所以很菜,麻烦大哥帮忙..
麻烦解释下这方法其他的我懂
else
leap=1;}
else
leap=0; 这几个是什么意思?

leap=(year%4==0&&year%100)||year%400

垃圾题目,扔!

这样写就清楚了:处于一竖线的if和else互相对应
if(year%4==0) {
    if(year%100==0){ //能被4整除,进一步判断能否被100整除
        if(year%400==0) //不满足“能被4整除但不能被100整除”,判断是否能被400整除
            leap=1; //能被400整除,闰年
        else leap=0; //也不能被400整除,非闰年
    }
    else leap=1; //能被4整除但不能被100整除
}
else leap=0; //不能被4整除,当然不能被400整除

能否被400整除的判断可以单独分开来写的,教科书上为了增加if循环重数,硬把它往里面塞……

main()
{int year,leap;
scanft("%d",&year);
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=1;
else leap=0;;}
else /和if(year%100==0)配
leap=1;} //上面的都是最外层的if为真的执行语句
else //最外层if的else
leap=0;
if(leap)
printf("%d is",year);
e