c语言递归调用问题

[复制链接]
查看11 | 回复3 | 2011-1-24 11:03:35 | 显示全部楼层 |阅读模式
首先main()函数调用fun2函数,n=5678,m=0.n!=0,执行return(fun2(n/10,m*10+n%10));此时n=567,m=8;n!=0,执行return(fun2(n/10,m*10+n%10));此时n=56,m=87;n!=0,执行return(fun2(n/10,m*10+n%10));此时n=5,m=876;n!=0,执行return(fun2(n/10,m*10+n%10));此时n=0,m=8765;n==0,函数返回m值,为8765.显示8765....
回复

使用道具 举报

千问 | 2011-1-24 11:03:35 | 显示全部楼层
#include "stdio.h"
//i/oint fun2(int n,int m)
//递归函数{if (n==0) return m;
//函数返回melsereturn(fun2(n/10,m*10+n%10));//递归}vo...
回复

使用道具 举报

千问 | 2011-1-24 11:03:35 | 显示全部楼层
我不是高手。if (n==0) return m;是递归的出口,如果没有,有点是、像死循环一样。return(fun2(n/10,m*10+n%10));重新调用fun2这个函数。但之前的的调用的 fun2(int n,int m),没有结束,只是暂停了一下,等获得到了(fun2(n/10,m*10+n%10))的值之后就返回这个值,以此...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行