利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。(有点小疑问,帮帮忙解答下)
#include"stdio.h"main(){inti=5;voidpalin(intn);printf("\40:");palin(i);printf("\n");}...
#include "stdio.h"
main()
{
int i = 5;
void palin(int n);
printf("\40:");
palin(i);
printf("\n");
}
void palin(n)
int n;
{
char next;
if(n<=1)
{
next = getchar();
printf("\n\0:");
putchar(next);
}
else
{
next = getchar();
palin(n-1);
putchar(next);
}
}
当n=1时,palin函数不是就进入if语句里面了吗?那else语句里的putchar(next)不是始终没被用到?
我知道n>1是进入else的分支,但是else分支的putchar(next)前有个palin(n-1),这样一直到palin(1)不是就进入if分支了吗? 展开
main()
{
int i = 5;
void palin(int n);
printf("\40:");
palin(i);
printf("\n");
}
void palin(n)
int n;
{
char next;
if(n<=1)
{
next = getchar();
printf("\n\0:");
putchar(next);
}
else
{
next = getchar();
palin(n-1);
putchar(next);
}
}
当n=1时,palin函数不是就进入if语句里面了吗?那else语句里的putchar(next)不是始终没被用到?
我知道n>1是进入else的分支,但是else分支的putchar(next)前有个palin(n-1),这样一直到palin(1)不是就进入if分支了吗? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询