c语言 a=1; b=2; c=2; while(a<b<c){t=a; a=b; b=t; c

c语言a=1;b=2;c=2;while(a<b<c){t=a;a=b;b=t;c--.;}分别打印a,b,c我觉得是:2,1,1但答案是1,2,0... c语言 a=1; b=2; c=2;
while(a<b<c){t=a; a=b; b=t; c--.; }
分别打印a, b, c
我觉得是:2, 1, 1但答案是1, 2, 0
展开
 我来答
百度网友2c0046c
推荐于2017-11-24 · TA获得超过2213个赞
知道大有可为答主
回答量:2314
采纳率:50%
帮助的人:1115万
展开全部
你这是a<b<c;
第一次先判断a<b,1<2成立为真,即1;在判断(a<b)<c,即1<2成立为真,即1;进入循环;
第二次先判断a<b,2<1不成立为假,即0;在判断(a<b)<c,即0<1成立为真,即1;进入循环;
第三次先判断a<b,1<2成立为真,即0;在判断(a<b)<c,即1<0成立为假,即0;不进入循环;
最后答案:1,2,0
追问
谢谢!
爱夜009
2014-09-23 · TA获得超过192个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:209万
展开全部
这个写法是不好的
追问
是的。我没电脑。不知答案
追答
=while( (a<b) < c)

先判断 a < b 得到个逻辑值 0 或 1

在用 该逻辑值与 c 比较

答案是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-07-13
展开全部
int main()
{
int t, a=1, b=2, c=2;
while (a<b<c) { //问题出在这里,不能直接用a<b<c
t=a;
a=b;
b=t;
c--; 
printf("%d %d %d\n", a, b, c);//这里打印出来两次,说明while循环执行了两次,直到c=0
}
return 0;
}

改写如下:

int main()
{
int t, a=1, b=2, c=2;
while (1) {
t=a;
a=b;
b=t;
c--; 
if (c>b && b>a)
continue;
else 
break;
}
printf("%d %d %d\n", a, b, c);

return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
琦气相5739
2014-09-23 · 超过51用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:50.7万
展开全部
(a=c<b)意思是先a=c,所以a=6。后面比较a<b。所以(a=c<b)的值为0.
(a&&!c)的值为0。很简单
b/a*2.0的值为6.
所以总体是6.
个人见解,没有跑程序验证
希望能解决您的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式