这个程序结果是???

来源:百度知道 编辑:UC知道 时间:2024/05/29 20:52:30
main()
{int t ,a=2,b=3,c=-2;
while(a>b>c)
{t=a;a=b;b=t;c++;}
printf("%d,%d,%d",a,b,c);
}

知道的朋友把求解过程说明一下 ,谢谢
答案为2,3,0的那为朋友 为什么说a>b呢 a是2 b是3啊

恩,大家说的不对。
这个程序的诡异之处正在a>b>c,其实是(a>b)>c
我们知道a>b是一个表达式,所以满足时“表达式的值”为1,不满足时为0。所以
int t ,a=2,b=3,c=-2;
while(a>b>c)
{t=a;a=b;b=t;c++;}
首先,a>b,真,于是考察1>c,为真,执行循环:
a=3,b=2,c=-1
继续:a>b,真,于是考察1>c,真,执行循环:
a=2,b=3,c=0
继续:a>b,假,于是考察0>c,假,跳出循环。

则打印出:2,3,0

你这段程序有错误....

没结果,因为循环条件不成立,printf在循环内,自然不能执行

结果就是2,3,-2 因为a>b>c这条件无法满足,直接跳过循环执行printf语句.

a>b>c 这个连着也可以么?
应该是
a>b&&b>c吧
条件为假
所以打印出来还是
2,3,-2