int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d+++1); else printf("%d",++d+1); printf("%d\n",d);

这是C语言题,我想知道结果的原因,先谢谢了哈

int a=3,b=4,c=5,d=2; if(a>b) 如果a>b才执行下面的 不大于就不执行
if(b>c) printf("%d",d+++1); else printf("%d",++d+1); 这两句if-else不执行
printf("%d\n",d);输出2追问

恩,是这样,我在vc++ 6.0 上试,把a的值改成5,结果竟然有两个,why?

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-25
运行结果:
4
3

int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d++ +1); else...
这个结果应该是33吧,因为上面两个if语句都成立,所以第一次输出的d++ +1=3、第二次输出的d是最后一个printf语句,因为上面d已经自加1了,所以输出d为3,所以两次d输出的都是3

int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d+++1); else p...
int a=3,b=4,c=5,d=2; if(a>b) 如果a>b才执行下面的 不大于就不执行 if(b>c) printf("%d",d+++1); else printf("%d",++d+1); 这两句if-else不执行 printf("%d\\n",d);输出2

...int a=3,b=4,c=5,d=2; if (a>b) if (a>c) printf("%d",d+++1...
整理一下:main(){ int a=3,b=4,c=5,d=2; if (a>b){ if (a>c) printf("%d",d+++1); else printf("%d",++d+1); } printf ("%d", d);}由于a>b为假,所以if里的语句都不执行,最后输出2

C语言,这个的结果为什么 是33,怎么算的?具体说明 一下~~
{ int a=3,b=4,c=5,d=2;if(a<b) 条件为真执行下一句if if(b<c)条件为真执行下一句printf printf("%d",d++);输出2,语句执行后d=3;这句等价于printf(("%d",d);d++;else(与第二if为一组条件是真所以不执行)printf("%d",++d+1);printf("%d\\n",d);最后执行输出3;} ...

int a=3,b=4,c=5;执行表达示,a++>&&c--&&++c后,a,b,c的值
x=-b+sqrt(d)\/2*a; printf("The 1st equation root=%d\\nThe 2nd equation root=%d",y,x); } } ③IF嵌套分支语句:其语句格式为: if(条件1) else if(条件2) else if(条件3) …… else if(条件n) else FOR嵌套,其语句格式为: for(初值A;范围A;步长A) { for(初值B;范围B;步长...

int a=5,b=4,c=3,d=2;if(a>b>c) printf("%d",d);else if((c-1>=d...
程序输出3 >是从左往右结合;所以a>b返回1,然后1>c返回0,即false,所以判断((c-1>=d)==1), 由于减号优先级高于>=;所以先计算c-1,返回2 2>=d返回1,1==1结果是true,所以输出d+1=3.

...h> int main(void) { int a=3,b=4,c=5,d=6; if(a>b) if(b>c...
代码等效如下 include<stdio.h>int main(void){int a=3,b=4,c=5,d=6;if(a>b)\/\/3>4不成立 不执行。 于是下面大括号中的 都不会执行。 { if(b>c) { printf("%d", c); } else { printf("%d",b); }}printf("%d\\n",d);\/\/直接执行这句打印 输出...

void main() {int a=3,b=4,c=5,t=99; if(a<c&&b<c)t=b;b=a;a=t; p...
如果a<c且b<c,则将b的值赋值给t,将a的值赋值给b,将t(已经是4)的值赋值给a,最后结果是输出abc,运行结果是4 3 5

main(){ int a=5,b=4,c=3,d=2; if(a>b>c) printf(“%d
C语言中不能用 a > b > c 这样的表达式来判断a, b, c 之间的大小。正确的表达式应为: if (a > b && b > c)具体可以找一本C语言基础的书籍看看

...a=5,b=4,c=3,d=2; if(a>b>c) printf("%d\\n",d); else if((c-1>=...
第一个IF 里面 判断 A>B>C 她不是一块判断的 而是从左到右进行判断 先判断A>B 因为成立 所以A>B是正确的 所以A>B的值为 1 (1表示TRUE,0表示FALSE) 然后 就变成 1和C比较了 当然1小于C 所以第一个IF 不满足 满足第二个IF 所以就输出2+1 =3 了 ...

相似回答