| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2017 人关注过本帖
标题:求大神解答递归求n!算法的 代码
只看楼主 加入收藏
o547336583
Rank: 2
等 级:论坛游民
帖 子:14
专家分:17
注 册:2014-12-21
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:7 
求大神解答递归求n!算法的 代码
程序代码:
#include<stdio.h>
long f(int x);

void main()
{
    int n=0;
    printf("请输入一个正整数:\n");
    scanf("%d",&n);
    int num;
    for(num=0;num<(n+1);num++)
        f(num);
    printf("%d!=%ld\n",n,f(num));
}

long f(int x)
{
    if (x==0)
        return 1;
    else 
        return x*f(x-1);
}


E:\C语言\练习\1.c(10) : error C2143: syntax error : missing ';' before 'type'
E:\C语言\练习\1.c(11) : error C2065: 'num' : undeclared identifier
2016-02-12 15:32
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:7 
注释掉那三行就可以了:
#include<stdio.h>
long f(int x);

void main()
{
    int n=0;
    printf("请输入一个正整数:\n");
    scanf("%d",&n);
    //int num;
    //for(num=0;num<(n+1);num++)
    //  f(num);
    printf("%d!=%ld\n",n,f(n));
}

long f(int x)
{
    if (x==0)
        return 1;
    else
        return x*f(x-1);
}

[此贴子已经被作者于2016-2-12 16:08编辑过]


天道酬勤
2016-02-12 16:06
o547336583
Rank: 2
等 级:论坛游民
帖 子:14
专家分:17
注 册:2014-12-21
收藏
得分:0 
回复 2楼 cheetah
我明白了,谢谢,但为什么错误显示的类型是这两个?
2016-02-12 16:17
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:7 
syntax error 是语法错误
undeclared identifier是未说明的标志符

能编个毛线衣吗?
2016-02-12 16:40
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:0 
以下是引用o547336583在2016-2-12 16:17:36的发言:

我明白了,谢谢,但为什么错误显示的类型是这两个?

正如版主所说,第一个是语法错误少了分号,第二个是变量num未定义
可是,不知道你用的是什么编译器,你的程序在我这上面没有语法错误,编译通过,只是结果不正确.
收到的鲜花
  • 杭012016-02-12 17:21 送鲜花  1朵   附言:我很赞同。看不出代码有啥错误。

天道酬勤
2016-02-12 17:11
o547336583
Rank: 2
等 级:论坛游民
帖 子:14
专家分:17
注 册:2014-12-21
收藏
得分:0 
回复 5楼 cheetah
你好,我用的是Visual C++ 6.0,我对c语言的看法比较浅,如果你们有什么好的编译器可以推荐给我,我记得以前有一种可以括号匹配还可以将子函数收起来的请问知道是什么软件吗?
2016-02-12 21:59
cheetah
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:120
专家分:118
注 册:2013-6-29
收藏
得分:0 
以下是引用o547336583在2016-2-12 21:59:21的发言:

你好,我用的是Visual C++ 6.0,我对c语言的看法比较浅,如果你们有什么好的编译器可以推荐给我,我记得以前有一种可以括号匹配还可以将子函数收起来的请问知道是什么软件吗?
我用的也是VC6。0,可是在我这上面编译通过了(除了结果不正确之外其它没有什么),直接复制粘贴没有做任何改动

天道酬勤
2016-02-13 10:09
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
程序代码:
#include<stdio.h>

void main()
{
    long f(int x);
    
    int n=0;
    printf("请输入一个正整数:\n");
    scanf("%d",&n);
    
    //long f(int x)本来就是自己递归计算,下面的不用。
    //int num;
    //for(num=0;num<(n+1);num++)
    //f(num);

    printf("%d!=%ld\n",n,f(n));
}

long f(int x)
{
    if (x==0)
        return 1;
    else 
        return x*f(x-1);
}


[此贴子已经被作者于2016-2-14 02:24编辑过]


   唯实惟新 至诚致志
2016-02-14 02:17
快速回复:求大神解答递归求n!算法的 代码
数据加载中...
 
   



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

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