蓝桥杯真题(C/C++)|题目 1575: 递归倒置字符数组

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

5 abcde

样例输出
ebcda edcbaedcba

解题思路 不断调换是重复操作,因此采用递归的方法。每一次调用递归函数,都交换“当前的首尾两位”,且输出交换后的结果;直到没有一组(2个数)可以交换了停止调用递归函数。
代码
#include #include void change(char a[], int s, int end){ char temp; int i,k = 0; int n = end-s+1; if (n>1) { temp = a[s]; a[s] = a[end]; a[end] = temp; s++; end--; printf("%s\n",a); change(a,s,end); } else printf("\n%s\n",a); }int main() { int n; scanf("%d",&n); char a[n+1]; scanf("%s",a); change(a,0,n-1); return 0; }

    推荐阅读