蛇簧联轴器的厂家排名:我对if语句不是很了解,请问去掉下面程序中的两对”{}”,程序分别是怎么样运行的?

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 17:55:54
scanf("%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);
尽量说的详细点,谢谢!

你应该这么写比较清楚:

scanf("%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);

如果去掉大括号:

scanf("%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);

因为你所有的 if 的内容只有一行,而且每个 if 都有对应的 else,所以结构上没有岐义,所以去掉大括号效果也相同。但是平时编程的时候最好写好,避免不必要的错误。

if(year%4==0)
{if(year%100==0)
{if(year%400==0)
去掉括号的话必须3个IF都满足才能执行下去
而且去掉后ELSE LEAP就起不到作用了~有3个ELSE会冲突
编译应该不会通过

代码不加缩进的全是垃圾.自己看不懂,别人更看不懂.
写程序要养成良好的代码编写习惯,加上适当的注释,方便自己查问题,也方便别人阅读自己的代码.

这是判断闰年的.