帮忙看下!该如何处理
帮忙看下!
main()
{
int i=5;
void palin(int n);
printf( "\40: ");
palin(i);
printf( "\n ");
getch();
}
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);
}
}
函数递归调用,输入字符 "asdfg ",输出 "gfdsa "把字符反向输出是在程序中那里完成的?我看不出来
------解决方案--------------------
关键是
next=getchar();//1
palin(n-1); //2
putchar(next); //3
输入字符 "asdfg ",输出 "gfdsa "
//1的地方,接受输入,a-> s-> d-> f-> g
这是递归调用palin(n-1)了,即//1-> //2-> //1-> //2-> //1-> //2。。。
输出的时候,是递归的putchar//3,
递归退栈,完成输出 g-> f-> d-> s-> a
main()
{
int i=5;
void palin(int n);
printf( "\40: ");
palin(i);
printf( "\n ");
getch();
}
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);
}
}
函数递归调用,输入字符 "asdfg ",输出 "gfdsa "把字符反向输出是在程序中那里完成的?我看不出来
------解决方案--------------------
关键是
next=getchar();//1
palin(n-1); //2
putchar(next); //3
输入字符 "asdfg ",输出 "gfdsa "
//1的地方,接受输入,a-> s-> d-> f-> g
这是递归调用palin(n-1)了,即//1-> //2-> //1-> //2-> //1-> //2。。。
输出的时候,是递归的putchar//3,
递归退栈,完成输出 g-> f-> d-> s-> a