| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1188 人关注过本帖
标题:题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
只看楼主 加入收藏
徐宗保
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:45
专家分:7
注 册:2012-3-4
结帖率:60%
收藏
已结贴  问题点数:10 回复次数:11 
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
用c++怎么写,麻烦简单点,不要用栈
2013-10-05 22:10
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:3 
  递归不爽

void func(char *ptr)
{
    int len = strlen(ptr);
    int i = 0;
    while (i < len) {
        char ch = ptr[i];
        ptr[i] = ptr[len - 1];
        ptr[len -1] = ch;
        len--;
        i++;
    }  
}


我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-10-06 13:14
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
收藏
得分:3 
#include <iostream>

static void func(const char* ptr);

int main(int argc, char** argv)
{
    char a[5] = {'a', 'b', 'c', 'd', 'e'};
    const char* p = &a[4];
    func(p);

    return 0;
}

void func( const char* ptr )
{
    char c = *ptr;
    std::cout << c;
    if (c == 'a') {
        std::cout << std::endl;
        return;
    } else {
        std::cout << '\t';
    }
    ptr--;
    func(ptr);
}
2013-10-06 13:30
heimeng105
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2010-7-19
收藏
得分:3 
#include
#include

using namespace std;
void funs(char szAry[])
{
  unsigned j = 0;
  for (unsigned i = strlen(szAry)-1;(i >= 0) && (j < strlen(szAry)/2);i--)
  {
    char ch;
    ch = szAry[i];
    szAry[i] = szAry[j];
    szAry[j] = ch;
    j++;
  }

}

int main()
{
  char szAry[32];
  cin.getline(szAry,31,'n');
  cout << szAry << endl;
  funs(szAry);
  cout << szAry << endl;
  return 0;
}
2013-10-07 14:56
徐宗保
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:45
专家分:7
注 册:2012-3-4
收藏
得分:0 
回复 2楼 yuccn
不是爽不爽,题目要求
2013-10-07 18:48
徐宗保
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:45
专家分:7
注 册:2012-3-4
收藏
得分:0 
回复 4楼 heimeng105
这是递归?
2013-10-07 18:50
徐宗保
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:45
专家分:7
注 册:2012-3-4
收藏
得分:0 
回复 3楼 blueskiner
如果字符要手动输入呢?你这样做我也会
2013-10-07 18:50
heimeng105
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2010-7-19
收藏
得分:0 
#include <iostream>
using namespace std;
static int i = 4;
void funs(char str[])
{
  static int  j = 0 ;
  if ( j > 2 )
  {
    return ;
  }
  char ch;
  ch = str[j];
  str[j] = str[i];
  str[i] = ch;
  i--;
  j++;
  return funs(str);
}
int main()
{
  char str[5] = {'a','b','c','d','e'};
  funs(str);
    cout << str << endl;
    return 0;
}
2013-10-07 20:06
heimeng105
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2010-7-19
收藏
得分:0 
你看答案对不对  ,我秋秋号码是892679419  有问题的话通知我一声
2013-10-07 20:07
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:3 
程序代码:
#include<iostream>
using namespace std;

void printc(int i){
    char c = cin.get();
    if(++i < 5){
        printc(i);
    }
    cout << c << endl;
}
int main(int argc, char *argv[]){
    printc(0);
}

迭代的是人,递归的是神。
2013-10-07 20:28
快速回复:题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来 ...
数据加载中...
 
   



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

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