多个if语句的运行和输出

可不可以有哪位小伙伴解释一下这个程序是咋运行的🙏🙏
#include "stdio.h"
main()
{
int x,y,z;
x = 1;
y = 2;
z = 3;
if(x>y)
if(x>z)
printf("%d",x);
else
printf("%d",y);
printf("%d\n",z);
}

答案是3

判断x是否大于y,1不大于2,然后直接到打印z的语句。

注意点在于,if或else后面是否使用花括号,如果有,就执行对应代码块中的逻辑即可,如果没有,则只执行if或else下的第一行代码。

这段代码格式有点罕见ovo
运行起来应该和下面的是一样的:

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

就是先判断x是否大于y,如果x大于y,再判断x是否大于z,如果x也大于z,就输出x。
否则如果x只大于y,就输出y

当然,如果一开始x大于y并不成立,那x和y都不会被输出

最后无论如何都会输出z

嗯,综上,希望能帮到你