| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 334 人关注过本帖
标题:搞不懂,求解,?!!
只看楼主 加入收藏
yscajf
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2012-3-20
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:3 
搞不懂,求解,?!!
程序代码:
#include<stdio.h>
int main(void)
{
  int x=100;


  while (x++<103){
         printf("%4d\n",x); }
  printf("%4d\n",x);

  getch();
  return 0;

}
为什么输出是:
101
102
103
104
当x=103时语句:while(x++<103)为假那么不会执行花括号的语句,而执行下句那么输出应该是:
101
102
103
为什么会出现104?真不明白,,呵呵,望 高手解答,!!
搜索更多相关主题的帖子: return 
2012-10-16 15:19
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
收藏
得分:20 
因为最后一次运算的情况是x=104> 103  但是你下面还有一个printf 就输出104了

去追寻更高的技术领域。永不停止。
2012-10-16 15:21
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
收藏
得分:0 
#include<stdio.h>
int main(void)
{
  int x=100;


  while (x++<103){
         printf("%4d\n",x); }
  

  getchar();
  return 0;

}
去掉那个printf,这样就行了

去追寻更高的技术领域。永不停止。
2012-10-16 15:23
yscajf
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2012-3-20
收藏
得分:0 
以下是引用StarFall在2012-10-16 15:21:36的发言:

因为最后一次运算的情况是x=104> 103  但是你下面还有一个printf 就输出104了
明白了!因为是拿X先比较再进行+1 ,所以当x=100时输出101,x=101输出102,当x=102时输出103,所以当X=103时,不执行while里的语句,但是X值已经累计到104了,,哎。。脑子一下没转过来。呵呵
2012-10-16 15:28
快速回复:搞不懂,求解,?!!
数据加载中...
 
   



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

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