main()
{
int a=1,b=2,t,c=2;
while(a<b<c)
{
t=a;
a=b;
b=t;
c–;}
printf(“%d,%d,%d”,a,b,c);
}
答案是1,2,0
编译没有出错,编译器也没问题
请问为什么while循环执行了两遍?
>> 本文固定链接: http://www.vcgood.com/archives/2556
>> 转载请注明: xiaoyaoniu 2008年07月27日 于 C语言帝国 发表
main()
{
int a=1,b=2,t,c=2;
while(a<b<c)
{
t=a;
a=b;
b=t;
c–;}
printf(“%d,%d,%d”,a,b,c);
}
答案是1,2,0
编译没有出错,编译器也没问题
请问为什么while循环执行了两遍?
>> 本文固定链接: http://www.vcgood.com/archives/2556
>> 转载请注明: xiaoyaoniu 2008年07月27日 于 C语言帝国 发表
你必须先 登录才能发表评论。
循环条件:a<b<c
第一次循环:a=1,b=2,c=2
a<b为真,a<b的表达式值为1,(a<b)=1<c=2成立,循环一次。
t=1,a=2,b=1,c=1
第二次循环:a<b为假,a<b的表达式值为0,(a<b)=0<c=1成立,循环一次。
t=2,a=1,b=2,c=0
此时a<b为真,a<b的表达式值为1,(a<b)=1<c=0不成立,退出循环。
所以循环执行两次,答案为 1,2,0。
谢谢2楼的回答
大家都在学习中,能帮助解决的就尽量帮助解决。