| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 461 人关注过本帖
标题:一个错误的递归程序!
只看楼主 加入收藏
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
 问题点数:0 回复次数:8 
一个错误的递归程序!
请大家指点我的程序那里出问题拉!
//用一个递归函数将字符串逆序输出
#include<iostream>
using namespace std;
void f( char* p_Arr) //p_Arr一个指向字符串的指针
{
if (*p_Arr=='\0') p_Arr--;
else f(p_Arr++) ;
cout<<*p_Arr;
}
void main()
{
char Arr[5]="abcd";
f(Arr);
cout<<"程序结束";
}
搜索更多相关主题的帖子: 递归 
2007-03-05 21:49
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
else
{
f(p_Arr+1) ;
cout<<*p_Arr;
}

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-05 21:58
lixang
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2006-7-15
收藏
得分:0 
wfpb
你好:
else
{
f(p_Arr+1) ;
cout<<*p_Arr;
}
else
{
f(p_Arr++) ;
cout<<*p_Arr;
}
递归里面的“p_Arr++”与“p_Arr+1”不同在那里呢?
2007-03-06 19:52
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

f(p_Arr++);
相当于
f(p_Arr);
p_Arr++;


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-07 00:10
cctv2cctv
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-9-4
收藏
得分:0 
if (*p_Arr=='\0') p_Arr--;改成if (*p_Arr=='\0');试试
俺没试过

[此贴子已经被作者于2007-3-8 10:52:59编辑过]

2007-03-08 10:50
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用lixang在2007-3-6 19:52:12的发言:
wfpb
你好:
else
{
f(p_Arr+1) ;
cout<<*p_Arr;
}
else
{
f(p_Arr++) ;
cout<<*p_Arr;
}
递归里面的“p_Arr++”会改变p_Arr,与“p_Arr+1”不会不同在那里呢?


倚天照海花无数,流水高山心自知。
2007-03-08 21:58
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

回复楼上,不同之处在于后面的cout输出的内容。


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-09 23:25
lehmann
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-8-15
收藏
得分:0 
不知道大家发现没,上面修改后运行的结果是ddcba
我又修改了一下
#include<iostream>
using namespace std;
void f( char* p_Arr) //p_Arr一个指向字符串的指针
{
if (*p_Arr=='\0')
{
p_Arr--;
}
else
{
if(*(p_Arr+1)!='\0')//在这里防止d被输出两次
f(p_Arr+1) ;
}
cout<<*p_Arr;
}
2007-03-11 21:16
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
恩,谢谢指出,的确需要判断一下

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-12 01:20
快速回复:一个错误的递归程序!
数据加载中...
 
   



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

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