/*问题描述
完成一个递归程序,倒置字符数组。并打印实现过程
递归逻辑为:
当字符长度等于1时,直接返回
否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
输入格式
字符数组长度及该数组
输出格式
在求解过程中,打印字符数组的变化情况。
最后空一行,在程序结尾处打印倒置后该数组的各个元素。
样例输入
Sample 1
5 abcde
Sample 2
1 a
样例输出
Sample 1
ebcda
edcba
edcba
Sample 2
a
ebcda
edcba
edcba
*/
#include<stdio.h>
void daozhi(char * , int , int , int);
void huan( char * , int , int );
int main(void)
{
int n;
char zf[100];
scanf("%d%s" ,&n ,zf);
daozhi(zf , n , n/2 , 0);
putchar('\n');
puts(zf);
return 0;
}
void huan( char * zf , int i , int j)
{
int tmp=zf[i];
zf[i]=zf[j];
zf[j]=tmp;
}
void daozhi(char * zf, int p_jw, int p_zj, int p_ks)
{
if(p_ks==p_zj)
{
return ;
}
else
{
huan( zf , p_ks , p_jw-p_ks-1);
puts(zf);
daozhi(zf , p_jw , p_zj , p_ks + 1);
}
}