搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 大家来看看 这该怎么解释
标题:
大家来看看 这该怎么解释
只看楼主
Y08M09D26
等 级:
论坛游民
帖 子:118
专家分:13
注 册:2008-9-26
结帖率:
100%
楼主
问题点数:0 回复次数:6
大家来看看 这该怎么解释
int func(int i,int n)
{
return (i<n && printf("%d\n",i)) && !func(i+1,n)
|| printf("%d\n",i);
}
这函数怎么来解释?
搜索更多相关主题的帖子:
解释
2008-10-31 14:36
lockhawk
等 级:
新手上路
帖 子:94
专家分:0
注 册:2008-9-17
第
2
楼
得分:0
返回的是一个关系表达式,结果是1或0。应该用bool型才对?
人生最大痛苦:虽然不明白你们说什么,但还是要听!
2008-10-31 18:46
youhm
等 级:
新手上路
帖 子:86
专家分:0
注 册:2006-5-25
第
3
楼
得分:0
呵呵,楼主从哪儿搞来的,是不是VBGOOD,这个是递归输出数字从i到n再到i
2008-10-31 19:14
ling121211
等 级:
新手上路
帖 子:10
专家分:0
注 册:2008-10-23
第
4
楼
得分:0
你这里的func()函数的返回值用int没问题。
函数的工作如下:
当i= 1时,先执行i<n;成立则输出i;然后去调用!func(i+1,n),同样先判断i<n是否成立,成立则输出i+1;
然后去调用!func(i+1,n),不停的递归调用。
当i=8时,先执行i<n;成立则输出i;然后去调用!func(i+1,n);此事!func(9,9),i<n不成立,故执行||后面的printf语句。然后返回到当i=8时栈空间,去执行||后面的printf()语句。
2008-10-31 23:45
Y08M09D26
等 级:
论坛游民
帖 子:118
专家分:13
注 册:2008-9-26
第
5
楼
得分:0
原来是这回事 啊
谢谢各位啦
2008-11-03 17:12
sunkaidong
来 自:南京师范大学
等 级:
贵宾
威 望:
12
帖 子:4496
专家分:141
注 册:2006-12-28
第
6
楼
得分:0
这是个递归程序..前半句是递推后半句是回归..应该注意到这个表达式在什么时候返回的都是1
(i<n && printf("%d\n",i)) && !func(i+1,n)
|| printf("%d\n",i);
只有都是1的时候才会执行||后面这个打印..
学习需要安静。。海盗要重新来过。。
2008-11-03 20:20
SuperPanda
等 级:
新手上路
帖 子:8
专家分:0
注 册:2008-10-8
第
7
楼
得分:0
你先搞清楚&/ !的优先级应该就可以了吧
2008-11-03 22:24
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-241684-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.094068 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved