主题:递归问题
拐角的认识
[专家分:0] 发布于 2010-06-30 19:36:00
要求:通过递归实现逆序输出。
如输入123这输出321
回复列表 (共9个回复)
沙发
wbdwhy [专家分:50] 发布于 2010-06-30 20:59:00
#include<stdio.h>
main()
{
void fun(int n);
int n;
scanf("%d",&n);
fun(n);
}
void fun(int n)
{
if(n<10)
printf("%d",n);
else if(n>=10)
{
printf("%d",n%10);
fun(n/10);
}
}
自己写的,没有上机调试,不知道对不对
板凳
wbdwhy [专家分:50] 发布于 2010-06-30 21:03:00
不好意思,把if(n>=10)改为if(n>10),然后加一个if(n==10)printf("1");上机试过了,可以运行了
3 楼
雪光风剑 [专家分:27190] 发布于 2010-06-30 21:13:00
函数传入指针
如果指针为空,返回
递归调用本函数,传入指针+1
输出指针所在位置指向的数据
以上为伪代码,细节请自行领会。
4 楼
alweeq86 [专家分:1170] 发布于 2010-06-30 21:45:00
[code=c]
int reverse()
{
int i;
scanf("%d",&i);
if(i!=0)
reverse();
else
return 1;
printf("%d",i);
}
int main()
{
reverse();
return 0;
}
[/code]
不知道合你意不
5 楼
alweeq86 [专家分:1170] 发布于 2010-06-30 21:48:00
[code=c]
void reverse()
{
int i;
scanf("%d",&i);
if(i!=0)
reverse();
else return;//输入0就结束
printf("%d",i);
}
int main()
{
reverse();
return 0;
}[/code]
6 楼
拐角的认识 [专家分:0] 发布于 2010-07-04 11:59:00
能解释清楚点吗
8 楼
senluo [专家分:10] 发布于 2010-07-05 22:41:00
1L的稍微修改一下OK了,也很好理解。但是3L-5L的就很费解了。5L的也运行不起来。。。。如果有空的话麻烦再提示一下。谢了。
9 楼
雪光风剑 [专家分:27190] 发布于 2010-07-05 23:50:00
1楼的其实形式上不是标准的递归
我来回复