| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 492 人关注过本帖
标题:递归函数问题未解就结贴了,求助
只看楼主 加入收藏
地狱天使79
Rank: 2
等 级:论坛游民
帖 子:21
专家分:15
注 册:2012-5-8
结帖率:37.5%
收藏
已结贴  问题点数:20 回复次数:7 
递归函数问题未解就结贴了,求助
以下是前两天beyond兄给我提供的关于递归函数的程序代码。
#include<stdio.h>
void output(int space, int n)
{
    int i;
    if(n == 0) return;
    output(space + 1, n - 1);
    for(i = 0; i < space; i++) putchar(' ');
    for(i = 1; i < n; printf("%d", i++));
    for(; i > 0; printf("%d", i--));
    puts("");
}

int main()
{
    int n = 5;
    output(0, n);
    return 0;
}
仔细看过后理不清output()递归和后面for循环语句之间的关系,或者说执行流程顺序。
还望哪位高手予以详解,多谢。
搜索更多相关主题的帖子: 关系 beyond return 
2012-05-31 11:06
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:4 
你的上一个贴子还没结好不好,只是沉到第二页了。

重剑无锋,大巧不工
2012-05-31 12:07
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:4 
给了原代码还看不懂,楼主还是没入门呀,打基础吧

总有那身价贱的人给作业贴回复完整的代码
2012-05-31 12:15
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:4 
不清楚就单步执行,看看B版的代码是如何运作的。

我们都在路上。。。。。
2012-05-31 12:16
有文采的网名
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-4-9
收藏
得分:0 
2012-06-01 18:48
有文采的网名
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-4-9
收藏
得分:0 
#include<stdio.h>
void output(int space, int n)
{
    int i;
    if(n == 0) return;
    output(space + 1, n - 1);
    for(i = 0; i < space; i++) putchar(' ');
    for(i = 1; i < n; printf("%d", i++));
    for(; i > 0; printf("%d", i--));
    puts("");
}

int main()
{
    int n = 5;
    output(0, n);
    return 0;
}
2012-06-01 18:48
missu_1314
Rank: 2
等 级:论坛游民
帖 子:46
专家分:98
注 册:2010-9-8
收藏
得分:4 
# include <stdio.h>
# include <conio.h>


void f(int, int);

int main(void)
{
    int line;
    printf("请输入要显示的杨辉三角的行数:");
    scanf ("%d", &line);

    f(line, 0);

    getchar();
    return 0;
}



void f(int line, int space)
{

    int i, j ;

    if (0 == line)
        return;
    else
        f(line-1, space+1);

   
        for (i = 1; i <= space; i++)
        {
            printf(" ");
        }

        for (j = 1; j <= line; j++)
        {
            printf("%d", j);
        }

        for (j = line-1; j >= 1; j--)
        {
            printf("%d", j);
        }

        printf("\n");
}



我这个递归  写得没有  beyond大哥 的简洁,  但好理解点。。。。
对照着 下面 循环实现 杨辉三角  仔细研究下吧
2012-06-01 19:29
missu_1314
Rank: 2
等 级:论坛游民
帖 子:46
专家分:98
注 册:2010-9-8
收藏
得分:4 
# include <stdio.h>
# include <conio.h>

int main(void)
{
    int i, j ,line, space;

    printf("请输入要显示的杨辉三角的行数:");
    scanf ("%d", &line);

    for (i = 1; i <= line; i++)
    {
        for (space = 1; space <= line - i; space++)
        {
            printf(" ");
        }

        for (j = 1; j <= i; j++)
        {
            printf("%d", j);
        }

        for (j = i-1; j >= 1; j--)
        {
            printf("%d", j);
        }

        printf("\n");
    }

    getchar();

    return 0;
}


循环实现  杨辉三角
2012-06-01 19:30
快速回复:递归函数问题未解就结贴了,求助
数据加载中...
 
   



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

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