| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 439 人关注过本帖
标题:C语言初学请教个程序问题
只看楼主 加入收藏
wusoso
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-5-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
C语言初学请教个程序问题
关于下面这个程序得出的结果和我理解不一样,为什么b==1,c==0,请大虾指点赋值的过程,非常感谢。

main()
{  
   int a=1,b=2,c=3,t;
   while (a<b<c)
   {
       t=a;a=b;b=c;c--;
   }
   printf("%d,%d,%d",a,b,c);
}
运行结果:   2,1,0        
</b<c)
搜索更多相关主题的帖子: C语言 
2013-05-29 00:14
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:20 
重点在于while的条件,a<b<c    很多人都会与数学上的这一式子混淆
这个条件应该这一理解:计算机中判断条件只有 0 和 1 ;a<b如果是真就是 1 ,否则 0,然后再拿它的之去与 c 比较
再看看具体程序:
1.a=1<b=2为真,所以a<b 的值为 1 ,1<c=3 也为真,所以整个条件为真,所以执行循环里面的语句,得到 a=2,b=3,c=2
2.a=2<b=3................................................................. ..................  a=3,b=2,c=1
3.a=3<b=2为假,所以a<b的值为 0 ,0<c=1 为真,所以整个条件为真..................................a=2,b=1,c=0
4.a=2<b=1为假,................. 0<c=0也为假,.............假,循环终止
输出a=2,b=1,c=0

三十年河东,三十年河西,莫欺少年穷!
2013-05-29 01:03
wusoso
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-5-25
收藏
得分:0 
回复 2楼 韶志
明白了,谢谢,解释得非常清楚。再问一个问题,这个程序为什么会定义t,我觉得这个t在里面没起什么作用
2013-05-29 01:18
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
学习!!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-29 07:01
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 3楼 wusoso
t 确实没用,对程序结果无任何影响

三十年河东,三十年河西,莫欺少年穷!
2013-05-29 12:46
快速回复:C语言初学请教个程序问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012710 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved