[求助]递归问题?
//题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。#include "stdio.h"
#include "conio.h"
void main()
{
int i=5;
void fea(int);
fea(i);
getch();
}
void fea(int n)
{
char a;
if(n<=1)//(1)我能理解这里是边界条件,n大于1所以{}里面的代码不执行,他就会跳到else。
{
a=getchar();//(5)这里来执行,但是到了这里往后我就不太明白了。希望高手给与指点帮助。
printf("\n\0");
putchar(a);
}
else
{
a=getchar();//(2)比如在这里我输入asdfg五个字符。
fea(n-1);//(3)在这里我就不太理解了。程序执行到这里后就会输出4个字符gfds。
putchar(a);//(4)程序执行到这里后,会输出最后一个字符,a。
//是不是执行到fea(n-1);的时候就开始了递归,当n<=1的时候就会跳转到(5)
}
}