| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 958 人关注过本帖
标题:请问我这个函数哪里出问题了?用递归实现字符串倒序
只看楼主 加入收藏
nooneace
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-3-9
结帖率:0
收藏
 问题点数:0 回复次数:2 
请问我这个函数哪里出问题了?用递归实现字符串倒序
#include<stdio.h>
2
3 void reverse(char[]);
4
5 int main(void)
6 {
7     char s[] = "abcd";
8     reverse(s);
9     printf("%s\n", s);
10     return 0;
11 }
12
13 void reverse(char s[])
14 {
15     static int i = 0;
16     static int j = 0;
17     if(s[j++])
18     reverse(s);
19     s[i++] = s[j - 1];
20     s[i] = '\0';
21
22
23 }
搜索更多相关主题的帖子: 函数 递归 void char int 
2018-11-01 13:58
星泪成寒
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:76
专家分:539
注 册:2013-5-19
收藏
得分:0 
交换没有临时变量, 肯定会丢数据,
s[i] = '/0' 把数据都清了

不清楚你的递归逻辑, 你得说清楚
2018-11-02 14:19
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
收藏
得分:0 
#include<stdio.h>

 void reverse(char[]);

 int main(void)
 {
     char s[] = "abcd";
     reverse(s);
     printf("s=%s\n", s);
     return 0;
 }

 void reverse(char s[])
 {
    static char a[5];
    static int i = 0;
    static int j = 0;
    if(*(s+j))
    {
        j++;
        reverse(s);
    }
    j--;
    a[i] = *(s+j);   
    if(i==4)
    {
        int k;
        a[i]='\0';
        for(k=0;k<i;k++)
            *(s+k)=a[k];
        *(s+i)=a[i];   
    }
    i++;
    }


 
2018-11-02 16:01
快速回复:请问我这个函数哪里出问题了?用递归实现字符串倒序
数据加载中...
 
   



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

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