鱼C论坛

 找回密码
 立即注册
查看: 1661|回复: 4

[已解决]求大神解答小问题

[复制链接]
发表于 2016-3-27 19:52:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问第5个人多大。(第5个人比第4个人大2岁,第4个人比第3个人大2岁,第3个人比第2个人大2岁,第2个人比第一个人大2岁。已知第一个人10岁。)就是递归函数问题。
#include<stdio.h>
#include<math.h>
int agee(int x)
{
        int age;
        if(x==1)
                age=10;
                else       
                        age=agee(x-1)+2;       
        return(age);
}
int main()
{
        int age;
        age=agee(5);
        printf("age=%d\n",age);
       
}
为什么递归当中一定要有那个else,我把else去掉之后就不能输出了。求大神解答。。~~!
最佳答案
2016-3-27 21:17:58
#include<stdio.h>
#include<math.h>
int agee(int x)
{
        int age;
        if(x==1)
                return 10;
          else        
                   return agee(x-1)+2;        
    
}
int main()
{
        int age;
        age=agee(5);
        printf("age=%d\n",age);
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-27 21:17:58 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>
#include<math.h>
int agee(int x)
{
        int age;
        if(x==1)
                return 10;
          else        
                   return agee(x-1)+2;        
    
}
int main()
{
        int age;
        age=agee(5);
        printf("age=%d\n",age);
        

评分

参与人数 1鱼币 +5 收起 理由
康小泡 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-3-27 22:17:19 | 显示全部楼层
还用问吗  递归就得有终止条件,才能层层返回,你把else去掉了 无论条件如何  age=agee(x-1)+2;   这句代码一定会执行,代价就是无限循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-27 22:51:30 | 显示全部楼层
    如果没有 else,当X = 1 时,进入 if 里边,然后下一条执行的是 age = agee(x - 1) + 2;  然后问题就来了,agee( x - 1) 就是 agee( 0 ) 了,这里就没有任何约束了,因为 0 和负数不会退出 agee() 的,它已经避过了 1;
楼主最好是像一楼一样写。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-28 15:47:54 | 显示全部楼层
最讨厌就是出这样没得意义的题目了!本来可以直接走直路的,出题的人非要误导你走曲线!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 22:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表