| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 566 人关注过本帖
标题:一段小函数求解
只看楼主 加入收藏
qpalqpal
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2010-8-7
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:7 
一段小函数求解
#include"stdio.h"
main()
{
  int x=3;
  do
     {
         printf("%3d",x-=2);
     }
  while(!(--x));
}
这个函数的意思是不是:先执行一次循环体,得到1,然后再判断一下,发现!(--x)不等于0,这个时候的x=0,然后再执行一次循环,得到-2,再判断发现!(--x)为0,就结束了。
搜索更多相关主题的帖子: 函数 求解 
2010-08-07 18:40
qpalqpal
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2010-8-7
收藏
得分:0 
哪位大虾给指点一下啊,这段我看不太懂~~
2010-08-07 19:47
星舞突击者
Rank: 2
等 级:论坛游民
帖 子:15
专家分:68
注 册:2010-7-30
收藏
得分:20 
我的理解是:第一次执行循环,x为1,while(!(--x))的意思是当表达式(--x)为假时,即(--x)为0时执行下一次的循环,此时(--x)为0,所以执行下一次的循环,x变为-2,(--x)为-4,不为0,结束循环,所以程序输出的的结果为1,-2
2010-08-07 19:49
qpalqpal
Rank: 1
等 级:新手上路
帖 子:14
专家分:1
注 册:2010-8-7
收藏
得分:0 
太感谢了,我明白了~
2010-08-07 19:55
liuzhengshen
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:83
专家分:141
注 册:2010-4-23
收藏
得分:0 
#include"stdio.h"
int main(void)
{
  int x=3;
  do
     {
         printf("%3d\n",x-=2);/*第一次输出1,第二次输出-2*/
     }
  while(!(--x));/*此表达式为真*/

  return 0;
}
这段代码的意思是先执行一次printf也就是输出1,然后在判断表达式是否为真,现在表达式是为真有执行一次printf现在的的值就变成-2
2010-08-07 19:55
ymqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:141
专家分:143
注 册:2010-7-14
收藏
得分:0 
强!
2010-08-07 20:14
wei7609450
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-8-7
收藏
得分:0 
3楼正解、、
2010-08-07 22:58
kingyueyang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-6-17
收藏
得分:0 
3楼正解,do while先循环后判断。
另外建议标准函数库被include时使用< >。
2010-08-09 02:47
快速回复:一段小函数求解
数据加载中...
 
   



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

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