| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 563 人关注过本帖
标题:[求助]C++的递归函数
只看楼主 加入收藏
masterboss
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-10-21
收藏
 问题点数:0 回复次数:3 
[求助]C++的递归函数
设计一个递归函数,将一个字符串按其逆序输出。比如,设源串为"abcdef",则输出为fedcba。

程序可以输入任意长的字符串然后输出的。

[此贴子已经被作者于2006-10-21 23:54:35编辑过]

搜索更多相关主题的帖子: 递归 函数 
2006-10-21 19:45
majia775
Rank: 1
等 级:新手上路
威 望:2
帖 子:94
专家分:0
注 册:2006-9-11
收藏
得分:0 
[CODE]
//我写的这个有个BUG,就是输出后是fedcb ,少了a,另外最后多个汉字乱码,递归问题接触的不多,这个还是唯一自己写出来的递归.
#include<iostream>
using namespace std;
void fun(char ch[],int n);
int main()
{
const int n=7;
char ABC[n]="abcdef";
fun(ABC,n);
return 0;
}
void fun(char ch[],int n)
{
if(n==0) cout<<ch<<endl; //排序前
else
{
fun(ch,n-1);
cout<<ch[n--]; //排序后,(BUG可能就出在这里)
}
}
[/CODE]

我不是随便的人,我随便起来不是人.... http://majia775.
2006-10-21 21:46
hyqzchh
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-2-28
收藏
得分:0 

我也实在想不出什么办法,只是将楼上老大的做了一下改动:

#include<iostream.h>
#include<string.h>

void fun(char *ch,int n);
int main()
{
char ABC[]="abcdef";
cout<<ABC<<endl;
fun(ABC,sizeof(ABC)/sizeof(char)-1);
cout<<endl;
}

void fun(char *ch,int n)
{
if(n==0)
{
cout<<*ch;
return ;
}
else
{
cout<<*(ch+n);
fun(ch,n-1);
}
}


运行如下:
abcdef
fedcba

2006-10-21 22:33
majia775
Rank: 1
等 级:新手上路
威 望:2
帖 子:94
专家分:0
注 册:2006-9-11
收藏
得分:0 
[CODE]//楼上的兄弟写的智能点,可以判断有几个字母,不过完了以后会多个空格,我将程序缩写如下,就完全正确了

#include<iostream.h>
#include<string.h>

void fun(char *ch,int n);
int main()
{
char ABC[]="abcdef";
cout<<ABC<<endl;
fun(ABC,sizeof(ABC)-2);
cout<<endl;
return 0;
}

void fun(char *ch,int n)
{
if(n==0) cout<<*ch;
else
{
cout<<*(ch+n);
fun(ch,n-1);
}
}


[/CODE]

[此贴子已经被作者于2006-10-22 0:18:51编辑过]


我不是随便的人,我随便起来不是人.... http://majia775.
2006-10-22 00:15
快速回复:[求助]C++的递归函数
数据加载中...
 
   



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

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