算法提高: 递归倒置字符数组(递归)
问题描述
完成一个递归程序,倒置字符数组。并打印实现过程
递归逻辑为:
当字符长度等于1时,直接返回
否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
递归逻辑为:
当字符长度等于1时,直接返回
否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分
输入格式
字符数组长度及该数组
输出格式
在求解过程中,打印字符数组的变化情况。
最后空一行,在程序结尾处打印倒置后该数组的各个元素。
最后空一行,在程序结尾处打印倒置后该数组的各个元素。
样例输入
Sample 1
5 abcde
Sample 2
1 a
样例输出
Sample 1
ebcda
edcba
edcba
Sample 2
a
注意:puts函数会自动换行
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void swap(int a, int b, char* s) 5 { 6 char temp = s[a]; 7 s[a] = s[b]; 8 s[b] = temp; 9 } 10 11 void fun(int start, int mid, int end, char *s) 12 { 13 if (start == mid) 14 { 15 return 0; 16 } 17 else 18 { 19 swap(start, end - start - 1, s); 20 puts(s); 21 fun(start + 1, mid, end, s); 22 } 23 } 24 25 int main(void) 26 { 27 int len; 28 char *s; 29 int i; 30 31 scanf("%d", &len); 32 getchar(); 33 s = (char *)malloc(sizeof(char)*len); 34 memset(s, 0, len); 35 gets(s); 36 37 fun(0,len/2,len, s); 38 printf("%s", s); 39 40 return 0; 41 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端