| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1353 人关注过本帖
标题:循环语句9.06
只看楼主 加入收藏
xuexuexue
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2004-7-19
收藏
 问题点数:0 回复次数:10 
循环语句9.06

#include <stdio.h> main() {int i,b,k=0; for (i=1;i<5;i++) {b=i%2; while (b-->=0) k++; } printf ("%d,%d",k,b); } 当i=1那么b=1,while (b-->=0)成立,K=1。这时b=0那么while (b-->=0)成立,K=2。这时b=-1,while (b--

>=0)不成立。i=2,b=0,while (b-->=0)成立,K=3。b=-1,while (b-->=0)不成立。i=3,b=1,while (b-->=0)成

立,K=4。b=0,while (b-->=0)成立,K=5。b=-1,while (b-->=0)不成立。i=4,b=0,while (b-->=0)成立,K=6

,b=-1,while (b-->=0)不成立。那么结果应该是6,-1。为什么TC算出来是6,-2 ???

搜索更多相关主题的帖子: 语句 
2004-09-06 22:06
xuexuexue
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2004-7-19
收藏
得分:0 
无人吗

C语言让我感爱到了计算机的乐趣 目前目标:程序员
2004-09-07 11:05
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

在,你写太乱了不好意思……

2004-09-07 11:06
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

while (b-->=0) k++;

不用看循环,就从0开始b就可以了,你是后减减,那么你先执行一变b--,因为b=0,b--还是0,所以,不跳出循环,

这时b已经是-1了,再执行循环b--,这时为-1,跳出循环,同时要减一,那b不就是-2了么??


差点把你忘了...
2004-09-07 13:59
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
以下是引用live41在2004-09-07 11:06:43的发言:

在,你写太乱了不好意思……

你行!!!!:)


差点把你忘了...
2004-09-07 14:01
baby
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2004-9-3
收藏
得分:0 

b都等于-2吗???


喝一碗孟婆汤,走一遍奈何桥…………
2004-09-07 17:55
young
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:223
专家分:160
注 册:2004-9-5
收藏
得分:0 
看当 i = 4时是最后一次循环了,
{
     b=i%2;                           // i = 4, 执行这句后  b = 0;
     while (b--&gt;=0) k++;     //  b--  先执行完语句后b再自减1
}
再看while语句, 先判断第一,注意b--执行完后b的值还是0 , while循环为true, 不过如果在下面的语句中用到b的话,那么值为 -1;
既然上面的循环为true, 并没有结束循环,所以还要判断一次while (b--&gt;=0) ,此时又执行了一次 b--, 所以在下面的printf语句中b的值为 -2;
看看C语言书上关于 a++与++a的讲解吧

如果你爱C语言,请你爱指针; 如果你爱指针,请你爱指针的指针;
2004-09-07 18:26
baby
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2004-9-3
收藏
得分:0 

每次循环时b都等于-2?


喝一碗孟婆汤,走一遍奈何桥…………
2004-09-07 18:52
baby
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2004-9-3
收藏
得分:0 

恩?这是什么?


喝一碗孟婆汤,走一遍奈何桥…………
2004-09-07 18:57
young
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:223
专家分:160
注 册:2004-9-5
收藏
得分:0 
我认同baby的猜测,每次循环后b的值都为 -2

如果你爱C语言,请你爱指针; 如果你爱指针,请你爱指针的指针;
2004-09-07 19:17
快速回复:循环语句9.06
数据加载中...
 
   



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

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