| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1050 人关注过本帖
标题:求阶乘时数据出了问题求解!!!
只看楼主 加入收藏
寂寞编程孤独
Rank: 1
等 级:新手上路
帖 子:20
专家分:6
注 册:2010-10-26
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:11 
求阶乘时数据出了问题求解!!!
#include"stdafx.h"
void main()
{
long f(long n);
long i=100;
//for(i=1;i<=100;i++)
printf("%d! is %d\n",i,f(i));
}



long f(long n)       /*阶乘函数*/
{
long int a;
if(n==1) return(1);
    else a=n*f(n-1);
       return(a);
}
他的结果有问题啊,是不是定义数据类型时搞错啦??
搜索更多相关主题的帖子: 问题求解 阶乘 数据 
2010-12-01 18:11
freedgun
Rank: 5Rank: 5
等 级:职业侠客
帖 子:147
专家分:302
注 册:2010-11-11
收藏
得分:3 
//for(i=1;i<=100;i++)
前面双斜杠去掉

有什么样的付出,就有什么样的收获!!
2010-12-01 19:15
freedgun
Rank: 5Rank: 5
等 级:职业侠客
帖 子:147
专家分:302
注 册:2010-11-11
收藏
得分:0 
#include<stdio.h>
main()
{
    long f(long n);
    long i=100;
    for(i=1;i<=100;i++)
        printf("%d! is %d\n",i,f(i));
}
long f(long n)
{
    long int a;
    if(n==1)
        return(1);
    else a=n*f(n-1);
    return(a);
}

有什么样的付出,就有什么样的收获!!
2010-12-01 19:20
寂寞编程孤独
Rank: 1
等 级:新手上路
帖 子:20
专家分:6
注 册:2010-10-26
收藏
得分:0 
同样运行不了,34以后结果就是0啦!!
2010-12-01 22:16
H_K
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2010-11-30
收藏
得分:3 
你的f()函数返回值是long型嘛,所以格式输出应是%ld,而不是%d……
2010-12-02 00:08
H_K
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2010-11-30
收藏
得分:0 
定义的什么类型,输出时要注意不要弄错……细心点就ok
2010-12-02 00:09
vvvevvv
Rank: 2
来 自:黑龙江
等 级:论坛游民
帖 子:129
专家分:92
注 册:2010-9-9
收藏
得分:3 
程序代码:
#include"stdio.h"
void main()
{
double f(long n);
long i=100;
for(i=1;i<=100;i++)
printf("%d! is %lf.0\n",i,f(i));
}



double f(long n)       /*阶乘函数*/
{
double a;
if(n==1) return(1);
    else a=n*f(n-1);
       return(a);
}
将long 改成double 就好了!!! 加油!!

学习~
2010-12-02 09:41
yipianchuyun
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2010-11-28
收藏
得分:3 
一个字长是有限的 物理内存一个字的表数范围有限 当很大时就会显示为零
2010-12-02 12:38
yipianchuyun
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2010-11-28
收藏
得分:0 
在物理硬件处理不了的情况下 一般应用软件予以解决 比如用两个字长表示数 当然要设计更复杂的算法 我在acm中遇到过这种题目


[ 本帖最后由 yipianchuyun 于 2010-12-2 12:41 编辑 ]
2010-12-02 12:40
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:3 
以下是引用yipianchuyun在2010-12-2 12:38:31的发言:

一个字长是有限的 物理内存一个字的表数范围有限 当很大时就会显示为零
同意.

经验积累中............
2010-12-02 12:42
快速回复:求阶乘时数据出了问题求解!!!
数据加载中...
 
   



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

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