目录
题目
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
问题分析
倒序输出,递归函数调用,和计算5!的题目(可以看经典第26题)类似,同样也是每次递归如果满足条件则把最后一个字符输出,直到不满足条件,具体解释请看代码注释。
代码
#include<stdio.h>
void con_printf(int a,char* p)
{
if (a != 0)//递归判断下标是否为0
{
printf("%c", p[a]);//输出最后一个字符
return con_printf(a - 1,p);//返回递归调用的结果
}
else
{
printf("%c", p[a]);//输出第一个字符
return ;
}
}
int main()
{
char arr[6] ;//加上结束字符一共6个字符
printf("请输入5个字符:\n");
//fgets(arr, 6, stdin); //fgets()函数的的参数:char* fgets(char* string, int n, FILE * stream);
for (int i = 0;i <= 5;i++)//循环输入5个字符,或者用fgets()函数
{
arr[i]=getchar();
}
con_printf(4, arr);//传的参数为:从下标为0开始到4结束
}