| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 856 人关注过本帖
标题:C语言简单函数递归调用问题
只看楼主 加入收藏
寂__痴
Rank: 2
等 级:论坛游民
帖 子:34
专家分:23
注 册:2014-4-25
收藏
得分:2 
或者 改成这样也行。
int age(int x,int num)
{
int y;
if(num==1)y=x;
esle y=2+age(x,num-1);
return y;
}

C语言之路,慢慢走,慢慢领悟,才是硬道理!
2014-05-05 23:03
assume2013
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2014-5-2
收藏
得分:2 
程序代码:
#include<stdio.h>
int main()
{    
    int k;
    int age(int x,int num);
    k=age(10,5);
    printf("%d\n",k);
    return 0;
}

int age(int x,int num)
{
    int y;
    y=x+2;
    num--;
    while(num>1)
     return age(y,num);//这里我想在num大于1的时候,还把y的值传递给x,num值传递个num,问题是出现在这里吗?
     
}


2014-05-06 06:12
assume2013
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2014-5-2
收藏
得分:0 
程序代码:
//共有5位同学,第一个同学的年龄是10,并且后边的同学依次比前面的同学大两岁,求第五个同学年龄,使用递归调用函数
//运行无结果
#include<stdio.h>

int age(int x,int num);
int main()
{    
    int k;
    
    k=age(10,5);
    printf("%d\n",k);
    return 0;
}

int age(int x,int num)
{
    
    x=x+2;
    num--;
    while(num>1)
    return age(x,num);//不返回的话,永远是死循环!!!!!!!!!!!!!!!!!!!
     
}


2014-05-06 06:37
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:0 
回复 13 楼 assume2013
你好,你的程序结果是对的,但是以我现在的理解
int age(int x,int num)
{
   
    x=x+2;
    num--;
    while(num>1)
    return age(x,num);//不返回的话,永远是死循环!!!!!!!!!!!!!!!!!!!
     
}

num大于1的时候,程序执行return语句,又调用age,但是num等于1的时候,程序怎么还会执行return语句呢?

我debug看了程序的运行过程, 发现age程序return  18以后,x和num的值还会改变,没怎么看懂,能否解释一下程序运行过程呢?
谢谢!
2014-05-06 16:10
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
胡闹呢,递归本身就是循环  还要while干嘛

DO IT YOURSELF !
2014-05-06 16:12
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:0 
回复 15 楼 wp231957
,不懂嘛,就这么写了,在大家提醒下,改了,嘿嘿
2014-05-06 16:46
Mr_Wendao
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-7-26
收藏
得分:0 
程序代码:
#include <stdio.h>
int age(int num);
int main()
{

    int num = 5;
    printf("%d\n", age(num));
    return 0;
}
int age(int num)
{
    if (num == 1) {
        return 10;
    }
    else {
        return 2+age(--num);
    }
}
2014-07-27 15:54
快速回复:C语言简单函数递归调用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016891 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved