| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1000 人关注过本帖
标题:while问题
只看楼主 加入收藏
plane5530
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-1-19
结帖率:83.33%
收藏
 问题点数:0 回复次数:22 
while问题
有以下程序:
main()
{int a=2,b=7;
do {b-=a;a++;}
while (b--<0);
printf ("%d\n",b);
}
我是这样算的:第一次:b=b-a=7-2=5,a=3;(条件成立,因为b--<0),
第二次:b=b-a=5-3=2,a=4;(条件成立,因为b--<0),
第三次:b=b-a=2-4=-2,a=5;条件不成立,所以执行后续语句,b=-2即为所求。但标准答案是4啊,为什么?
搜索更多相关主题的帖子: 条件 
2007-03-14 12:47
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
你搞错了吧,这个循环只运行一次

雁无留踪之意,水无取影之心
2007-03-14 12:55
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
while (b--&lt;0);是当其成立时才运行,改成while (b--&gt;0);

雁无留踪之意,水无取影之心
2007-03-14 12:56
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 
b=b-a=7-2=5;
5<0不成立
所以b=4;
这个程序执行以下代码
b-=a;
b--

2007-03-14 12:56
tianykun
Rank: 4
等 级:禁止访问
威 望:11
帖 子:3727
专家分:0
注 册:2005-11-13
收藏
得分:0 
以下是引用无玩过界在2007-3-14 12:56:32的发言:
b=b-a=7-2=5;
5<0不成立
所以b=4;
这个程序执行以下代码
b-=a;
b--

没错啊。就是这样啊。。。b--<0,不成立咯。。。但do...while,是先运行再判断的哦。。。。。


离开这里,离开你的视野,归隐到属于我的地方,无论何处
2007-03-14 13:00
pyrzp
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-2-27
收藏
得分:0 
以下是引用plane5530在2007-3-14 12:47:17的发言:
有以下程序:
main()
{int a=2,b=7;
do {b-=a;a++;}
while (b--<0);
printf ("%d\n",b);
}
我是这样算的:第一次:b=b-a=7-2=5,a=3;(条件成立,因为b--<0),
第二次:b=b-a=5-3=2,a=4;(条件成立,因为b--<0),
第三次:b=b-a=2-4=-2,a=5;条件不成立,所以执行后续语句,b=-2即为所求。但标准答案是4啊,为什么?

main()
{int a=2,b=7;
while (b--<0);
b-=a;
;a++;

printf ("%d\n",b);
getch();
}
运行结果是 : 4


周总理说:最经典的话与最永恒的真理,往往是最菜的人无意间说出来的. 简简单单做人,简简单单做事,平凡一生.
2007-03-14 13:14
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
楼上来灌水啊,走,咱们去水区!

雁无留踪之意,水无取影之心
2007-03-14 13:33
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
快来,我等着你啊

雁无留踪之意,水无取影之心
2007-03-14 13:34
★红狼
Rank: 2
等 级:论坛游民
帖 子:190
专家分:17
注 册:2006-7-12
收藏
得分:0 
以下是引用plane5530在2007-3-14 12:47:17的发言:
有以下程序:
main()
{int a=2,b=7;
do {b-=a;a++;}
while (b--<0);
printf ("%d\n",b);
}
我是这样算的:第一次:b=b-a=7-2=5,a=3;(条件成立,因为b--<0),
第二次:b=b-a=5-3=2,a=4;(条件成立,因为b--<0),
第三次:b=b-a=2-4=-2,a=5;条件不成立,所以执行后续语句,b=-2即为所求。但标准答案是4啊,为什么?

b--后 b=4
第二次没运行 因为 b-=a= 4-3=1; b--=1-1=0<0

所以b=4

2007-03-14 14:54
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
以下是引用无玩过界在2007-3-14 12:56:32的发言:
b=b-a=7-2=5;
5<0不成立
所以b=4;
这个程序执行以下代码
b-=a;
b--

这个是错的


do


while(b--<0) 这里的条件是执行DO后B=5再自减1,即4<0不成立,跳出循环 b=4结果


2007-03-14 14:56
快速回复:while问题
数据加载中...
 
   



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

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