题目描述
完成一个递归程序,倒置字符数组。并打印实现过程 递归逻辑为: 当字符长度等于1
时,直接返回 否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
输入输出格式
输入格式 字符数组长度及该数组 输出格式 在求解过程中,打印字符数组的变化情况。 最后空一行,在程序结尾处打印倒置后该数组的各个元素。
输入输出样例1
输入 5
abcde
输出 ebcda
edcba
edcba
输入输出样例2
输入 1
a
输出 a
说明提示
1≤n≤10
#include<stdio.h>
void swap(char *x,char *y){
char t=*x;
*x=*y;
*y=t;
}
void print(char a[],int n){
for(int i=0;i<n;i++){
printf("%c",a[i]);
}
}
void rever(char a[],int n,int l,int r)
{
if(l>=r){
return;
}
/*if(n==1){
print(a,n);
}*/
swap(&a[l],&a[r]);
print(a,n);
printf("\n");
rever(a,n,l+1,r-1);
//rever(a,l++,r--);
}
int main()
{
int n;
scanf("%d",&n);
getchar();//消耗掉换行符
char a[n];
for(int i=0;i<n;i++){
scanf("%c",&a[i]);
}
rever(a,n,0,n-1);
print(a,n);
return 0;
}