[蓝桥杯][算法提高VIP]递归倒置字符数组

题目描述
完成一个递归程序,倒置字符数组。并打印实现过程 
递归逻辑为: 
当字符长度等于1时,直接返回 
否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分 
输入
字符数组长度及该数组 
输出
在求解过程中,打印字符数组的变化情况。 
最后空一行,在程序结尾处打印倒置后该数组的各个元素。 
样例输入
5 abcde
样例输出
ebcda
edcba

edcba
 1 #include <stdio.h>
 2 #include <string.h>
 3 char str[100];
 4 int len;
 5 void deal(char *a,int n)
 6 {
 7     if(n>=len/2) return ; //递归到中间停止 
 8     char c=a[n];
 9     a[n]=a[len-n-1];
10     a[len-n-1]=c;
11     printf("%s\n",a);
12     deal(a,n+1);
13 }
14 void main()
15 {
16     int n;
17     while(~scanf("%d %s",&n,&str)){
18         len=strlen(str);
19         deal(str,0); //从第一个字符开始 
20         printf("\n%s\n",str);
21     }
22 }

 

posted @ 2020-03-03 10:54  wydxry  阅读(388)  评论(0编辑  收藏  举报
Live2D