以下程序的运行结果是()#include<stdio.h>main() {int a=1 ,b=2,c=3,t=4; while (a<b<c) {t=a;a=b;
b=t;c--;}printf("%d,%d,%d",a,b,c);}麻烦大家帮我解释哈这个程序...
b=t;c--;}printf("%d,%d,%d",a,b,c);}麻烦大家帮我解释哈这个程序
展开
6个回答
展开全部
答案是1,2,1
#include<stdio.h>
main()
{
int a=1 ,b=2,c=3,t=4;
while (a<b<c) //当条件成立,就执行while里面的代码,那么,这里面不成立就为0,成立就为1
{
t=a;
a=b;
b=t;
c--;
}
printf("%d,%d,%d",a,b,c);
}
这个程序的难点在于while (a<b<c) ,a<b<c是如何判断的,我经过调试,一步一步观察,最后得出的结果是, while里面是从右向左进行比较的,这样只要有一个为真,则值为1,执行下一步,那么,当第一步为0,则不用看后面的比较,跳出循环,那么它就不能往下执行了,还有一点建议就是代码要整齐一点,不然你以后会看不出自己写的东西。
#include<stdio.h>
main()
{
int a=1 ,b=2,c=3,t=4;
while (a<b<c) //当条件成立,就执行while里面的代码,那么,这里面不成立就为0,成立就为1
{
t=a;
a=b;
b=t;
c--;
}
printf("%d,%d,%d",a,b,c);
}
这个程序的难点在于while (a<b<c) ,a<b<c是如何判断的,我经过调试,一步一步观察,最后得出的结果是, while里面是从右向左进行比较的,这样只要有一个为真,则值为1,执行下一步,那么,当第一步为0,则不用看后面的比较,跳出循环,那么它就不能往下执行了,还有一点建议就是代码要整齐一点,不然你以后会看不出自己写的东西。
更多追问追答
追问
那既然 while里的表达式为假,跳出循环的话为什么C=1呢??方便的话留下QQ,我还几个题目不太懂呀。。。呵呵
追答
你有没看到程序里c--就是c=c-1,,这句话就是每执行一次循环,c就自减1,那么它执行2次后,条件不成立,它就得跳出循环,然后执行下一步,所以 C最后为1。
展开全部
我觉得答案是4,1,1
在比较a<b<c是先比较a<b成立,循环一次,再比较1<c成立再循环一次,然后继续比较a<b不成立,跳出循环得出结果
在比较a<b<c是先比较a<b成立,循环一次,再比较1<c成立再循环一次,然后继续比较a<b不成立,跳出循环得出结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案应该是121,第一次执行,a=2,b=1,c=2时a<b<c相当于2<1<2
当2<1时不成立为0,0<2成立为1,继续执行大括号,结果为121
当2<1时不成立为0,0<2成立为1,继续执行大括号,结果为121
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2,1,2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询