| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1453 人关注过本帖
标题:[求助]有关循环结构的输出结果
只看楼主 加入收藏
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
没关系,大家都在讨论嘛,只要不是复制,发的时间先后没有关系的.

倚天照海花无数,流水高山心自知。
2006-09-24 10:21
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
前面手误搂打了一个等号,是while(n++=<2),不过解题思路都一样的,我大致听明白了,原来while后面是个分号,真的没注意这个细节,当n=2时,n++=2,然后n变为3++>2,所以跳出循环,然后输出n=4,我没理解错吧~~
2006-09-24 10:56
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
没错.依葫芦画瓢就可以了.

倚天照海花无数,流水高山心自知。
2006-09-24 11:27
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 

那我再问一道题目
以下程序输出结果是:
#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);
}
答案是8,-2,为什么?
我是这么理解的:while(b-->=0)就是说b的值要>0,b=i%2才会被执行,而我觉得既然1<=i<5,那么b的值就永远不可能为负,这应该变成死循环了,不知道我错哪里?

[此贴子已经被作者于2006-9-24 13:56:59编辑过]

2006-09-24 11:40
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
没人能帮我吗?
2006-09-24 13:32
tang123
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-9-22
收藏
得分:0 

我同意上面的 第三楼的

2006-09-24 14:07
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
收藏
得分:0 
[QUOTE]下面程序的输出结果是
int n=0;
while(n++=<2); printf("%d",n);
答案是4,为什么?既然是循环结构,那么输出的n的值应该不止一个才对,执行几次循环就应该输出几次n的值.可为什么答案是4?[/QUOTE]
红色的“;”就是问题的关键 WHILE是空循环

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2006-09-24 14:58
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用sunyuantz在2006-9-24 14:58:18的发言:
下面程序的输出结果是
int n=0;
while(n++=<2); printf("%d",n);
答案是4,为什么?既然是循环结构,那么输出的n的值应该不止一个才对,执行几次循环就应该输出几次n的值.可为什么答案是4?

红色的“;”就是问题的关键 WHILE是空循环

那前辈能不能帮我解答下~~
以下程序输出结果是:
#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);
}
答案是8,-2,为什么?
我是这么理解的:while(b-->=0)就是说b的值要>0,b=i%2才会被执行,而我觉得既然1<=i<5,那么b的值就永远不可能为负,这应该变成死循环了,不知道我错哪里?

2006-09-24 15:09
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
收藏
得分:0 
14 楼的问题是这样的,这是我在纸上写的
i k b

1 1 0
1 2 -1
2 3 -1
3 4 0
3 5 -1
4 6 -1
5 7 0
5 8 -1
最后在做一次就是8,-2 了

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2006-09-24 15:24
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用inku在2006-9-24 11:40:10的发言:

那我再问一道题目
以下程序输出结果是:
#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);
}
答案是8,-2,为什么?
我是这么理解的:while(b-->=0)就是说b的值要>0,b=i%2才会被执行,而我觉得既然1<=i<5,那么b的值就永远不可能为负,这应该变成死循环了,不知道我错哪里?

循环条件中b--,这里b会改变的.所以不会造成死循环.

倚天照海花无数,流水高山心自知。
2006-09-24 16:05
快速回复:[求助]有关循环结构的输出结果
数据加载中...
 
   



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

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