#include <stdio.h>
//利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
void dayin(int i,char *p)
{
if(i==0)
{
printf("%c",p[i]);
return ;
}
else
{
printf("%c",p[i]);//第5位是结束符,第4位才是hello的o
dayin(i-1,p);
}
}
int main()
{
char str[6];//输入5个字符+1个结束符,共6个元素
printf("input a string:");//输入hello
fgets(str,6,stdin);//6个而不是5个
dayin(4,str);
}
需要注意的是,输入5个字符,还需要加上一个结束符,所以数组的总长度为6,但是数组下标是0-4的时候才是有效的输入字符,所以函数dayin()传参时,只需把4传过去,而不是5或者6,还有就是递归函数本质就是调用自己,注意每个递归函数都需要有出口。
运行结果: