首页 > 编程语言 > 详细

算法提高----递归倒置字符数组

时间:2016-12-29 20:21:48      阅读:548      评论:0      收藏:0      [点我收藏+]
问题描述
  完成一个递归程序,倒置字符数组。并打印实现过程
  递归逻辑为:
  当字符长度等于1时,直接返回
  否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
输入格式
  字符数组长度及该数组
输出格式
  在求解过程中,打印字符数组的变化情况。
  最后空一行,在程序结尾处打印倒置后该数组的各个元素。
样例输入
Sample 1
5 abcde
Sample 2
1 a

样例输出

Sample 1
ebcda
edcba
edcba
Sample 2
a

 

#include <stdio.h>
#include <stdlib.h> 

void swap(char *str1,int start,int end){
    char temp;
    temp = str1[start];
    str1[start] = str1[end];
    str1[end] = temp;
}

void Reverse_And_Print(char *str1,int start,int end){
    if(start == end){
        printf("%s\n",str1);
        return;
    }
    else{
        swap(str1,start,end);
        printf("%s\n",str1);
        Reverse_And_Print(str1,start+1,end-1);
    }
}

int main(){
    char str[7];
    char *str1;
    int num,num1;
    while(scanf("%s",str)!= EOF){
        scanf("%d",&num); 
        scanf("%d",&num1);
        str1 = (char *)malloc(sizeof(char)*(num1+1));
        scanf("%s",str1);
        printf("%s %d\n",str,num);
        Reverse_And_Print(str1,0,num1-1);
    }
    return 0;
}

 

//注:官网给的测试数据和样例说明冲突,因而提交上去会显示Runtime Error

 

算法提高----递归倒置字符数组

原文:http://www.cnblogs.com/520xiuge/p/6234559.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!