一段递归的代码 不理解
1 int age(int n)2 {
3 int c;
4 if(n==1)
5 c=10;
6 else
7 c=age(n-1)+2;
8 return c;
9 }
10 main()
11 {
12 printf("%d",age(5));
13 getch();
14 }
结果怎会是 18 ~?
到第7行 c=age(n-1)+2; age(n-1)调用自己
当减到n为1的时候不就返回 c了吗~?
结果怎么不是10
难道通过if了 就不做下一句了?~
[ 本帖最后由 sainimu78 于 2010-1-27 16:22 编辑 ]