标题:极难杂症
只看楼主
MOON奏鸣曲
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2018-3-18
结帖率:0
已结贴  问题点数:20 回复次数:5 
极难杂症
#include<stdio.h>
double fact(int n){
    return(n==0?1:n*fact(n-1));
}
int main(void){
    double sum=0;
    int i=1;
    for(;i<21;i++){
        printf("%lf\n",fact(i));
        sum+=fact(i);
    }
    printf("%lf",sum);
}
使用double类型计算1到20的阶层和会失真13
是什么原因呢
搜索更多相关主题的帖子: double int sum printf 原因 
2019-03-22 15:20
星泪成寒
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:75
专家分:539
注 册:2013-5-19
得分:7 
google一下double类型在内存中存储机制就知道了
2019-03-22 15:56
MOON奏鸣曲
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2018-3-18
得分:0 
回复 2楼 星泪成寒
请问有相关链接么,我用不了谷歌
2019-03-22 17:44
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:7 
回复 3楼 MOON奏鸣曲
你能用了百度吗?
2019-03-22 18:12
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:7 
计算阶乘不应该使用double  如果一定要计算大数的阶乘比如50  哪就要用到大数库 c 里貌似没有大数库

DO IT YOURSELF !
2019-03-22 18:15
星泪成寒
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:75
专家分:539
注 册:2013-5-19
得分:0 
https://zh.
2019-03-22 18:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-493731-1-1.html




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

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