文章

1

粉丝

28

获赞

1

访问

188

头像
[C语言 P1045] 程序运行结果不应该是0吗?
我要提问
发布于2024年10月26日 13:59
阅读数 188

  1. #include <stdio.h>
    
    main()
    {
    int x=2,y= -1,z=5;
    if(x<y)
    if(y<0)
    z=0;
    else
    z=z+1;
    printf("%d\n", z);
    }

    运行结果是5,实在搞不懂

登录查看完整内容


登录后发布评论

2 条评论
snake VIP
2024年10月26日 15:39

看来对嵌套的理解不到位

如果给他们加上等价的中括号的话应该是

#include <stdio.h>

main()
{ 
    int x=2,y= -1,z=5;
    if(x<y){
        if(y<0)
            z=0;
        else
            z=z+1;
    }
    printf("%d\n", z);
}

这个题故意用对齐来迷惑人,但实际上C语言里对齐是没用的

赞(1)

怎酿 : 回复 snake: 谢谢老师,我又翻了一下书,明白过来了. if()if() printf(); else printf(); 按照C语言规定的if和else就近配对原则,代码实际等价 if(){ if() printf(); else printf(); } else 与 第二个if构成 if-else语句

2024年10月26日 16:00