题目描述
完成一个递归程序,倒置字符数组。并打印实现过程
递归逻辑为:
当字符串长度小于等于1时,直接返回;
否则,调换首尾两个字符,再递归地倒置字符数组的剩下部分。
输入
字符数组长度及该数组。
输出
在求解过程中,打印字符数组的变化情况。
最后空一行,在程序结尾处打印倒置后该数组的各个元素。
样例输入 Copy
5 abcde
样例输出 Copy
ebcda edcba edcba
正确代码
#include<stdio.h>
#include<string.h>
void change(char a[], int s, int e){
char t;
int i,k = 0;
int n = e-s+1;
if (n>1)
{
t = a[s];
a[s] = a[e];
a[e] = t;
s++;
e--;
printf("%s\n",a);
change(a,s,e);
}
else
printf("\n%s\n",a);
}
int main()
{
int n;
scanf("%d",&n);
char a[1000];
scanf("%s",a);
change(a,0,n-1);
return 0;
}