这里是一个利用递归函数调用方式的问题,请大家看看,谢谢!
首先谢谢大家能看我的贴,问题如下:#include "stdio.h"
void main()
{
void palin(int n);
int i=5;
printf("\40:");
palin(i);
printf("\n");
}
void palin(int n)
{
char next;
if(n<=1)
{
next=getchar();
printf("\n\0:");
putchar(next);
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}
这里是函数调用函数?palin(n-1);这里应该怎么理解?
把i-1然后在调用?只到N<=1吗?
我输入一些数后,这里next=getchar();貌似只能保存1个数字啊,为什么我能输入几个数呢?
然后回车以后返回了三个数,不管输入什么,都返回三个数,这里三个数是被掉转的^
我输入一些数后,这里next=getchar();貌似只能保存1个数字啊,为什么我能输入几个数呢?
然后回车以后返回了三个数,不管输入什么,都返回三个数,这里三个数是被掉转的^
递归使用堆栽来实现的,getchar()函数的输入结果放在队栽中的
如 输入 12345\n 的话 就会输出54321
如果一个一个输入的话,相当于 1 \n 2 \n 3 \n 回车也是一个ASCII码 不要忘了 所以就
3
2
1
再加上printf("\n\0:");
光标就跳到了 下一行了 恩,了解了!谢谢啊!
页:
[1]
