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

为什么结果是2呢

这边是先判断出x<y不成立所以只执行printf语句了,你这边第二个if语句是上个if语句里面嵌套的语句所以不执行了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-26
else是和第一个 if(x<y)组成一对,不是和第二个,加上括号吧
#include<stdio.h>
void main()
{int x=1,y=-1,z=2;
if(x<y)
{
if(y<0)
z=0;
}
else
z+=1;
printf("%d\n",z);
}

结果是2;
第2个回答  2011-03-26
else只和前边最近的且没有配对的if结合,这样写也许会更清楚一点
#include<stdio.h>

void main()
{
int x=1,y=-1,z=2;
if(x<y)
if(y<0) z=0;

else z+=1;
printf("%d\n",z);
}
第3个回答  2011-03-26
不满足所有条件 所以z没有被重新赋值 做z等于2

...int x=2,y-1,z=2;if(x<y) if(y<0) z=0 else z)+=1 printf("%d\\n...
include"stdio.h"void main(){int x=2,y=1,z=2;if(x<y)if(y<0)z=0;else z+=1;printf("%d\\n",z);} 程序是这样的话,结果是2 因为else在没有括号标志的情况下是与紧接着它的上一个if匹配,这个程序里,第一个if不符合就执行输出语句了。

#include<stdio.h> void main() { int x=0,y=1,z=2; if(!x) z=-1...
!x表示x=0,执行完这条语句z的值为-1;if (y) z=-1; 表示当y不等于0时,z等于-2.这是z就由-1变成-2了。

...main() { int x=1,y=2,z=0; if(x=2)z=x,x=y,y=z; printf("%d,%d\\n...
改成z=x;x=y;y=z;后 程序执行如下 先给x赋值1,y赋值2,z赋值0;判断x=2是真是假,为真执行下面的语句 z=x;x=y;y=z;将x被赋值为2的值赋值给z,将y等于2的值赋值给x,将z等于2的值赋值给y 结果输出 x=2,y=2;

#include<stdio.h> void main() { int x=1; if(x=2) printf("OK\\n...
那个if语句里面比较的符号要用双等 if(x==2)还有你的问题应该是为什么输出的不是1吧?

#include <stdio.h> main() { int x=1, y=2, z=3; if(x>y) if(y<z...
结果是1 if(y<x)不成立,不执行下面。直接执行else printf(“%d,x++),所以结果为1

#include<stdio.h> void main() { int x,y; scanf("%d",&x); if(x...
因为if(x==0)后面多了一个分号

一道c语言if条件句的问题
} 因为,if(x>y)判断语句下面的if相当是嵌套在第一个if里面,而else要与和它最近的if,也就是与if(y<z),保持一直,也就是说,整个程序可以理解为:include<stdio.h> main(){ int x=1,y=2,z=3;if(x>y){ if(y<z)printf("%d",++z);else printf("%d",++y);} printf ("%d\\n...

...#include<stdio.h> main( {int x=1,y=0; if(!x)y++; else if(x=...
结果是0;x=1,!x为false 所以再判断x==0也不成立故y=0 else if (x==0)if (x) y+=2;else y+=3;和 else if (x==0){ if (x) y+=2;else y+=3;} 是一样的意思

#include <stdio.h> void main () { int x=0,y=0,z=0; if(x=y+z...
解释:if(x=y+z)成立就执行输出*** 。否则就输出 至于x=y+z是赋值表达式来,赋值表达式的左边值是可以改变的。此处是把y+z值赋给x,即把0赋给x。所以此处的判断值是0,因此判断条件不成立。所以就执行printf ("###");

#include<stdio.h> Int main() { Int x,y; Scanf("%d",&x); If(x<...
1)如果x<0,则y=-1 2)如果x=0,则y=0 3)如果x>0,则y=1 如果格式看不清楚可以写成 if(x<0) y=-1;一样的

相似回答