标题:阶乘计算result=1*2*3.......*(n-1)*n
只看楼主
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
结帖率:76.92%
已结贴  问题点数:20 回复次数:12 
阶乘计算result=1*2*3.......*(n-1)*n
#include <stdio.h>
#include <stdlib.h>
int main()
{
    double result=1.0;
    int n=1;
    int i=1;
    printf("请输入求阶乘中的n(1~100):");
    scanf("%d",&n);
    if(n>=1&&n<=100)
    {
        for(;i<=n;i++)
        {
            result*=i;
        }
        printf("%d的阶乘是%d",n,result);
    }
    return 0;
}
各位大神看看哪里有问题,为什么输入什么数,结果都是0
搜索更多相关主题的帖子: include result double 
2015-11-09 09:29
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
100的阶乘即便是对于double类型 也实在是太大了

DO IT YOURSELF !
2015-11-09 09:39
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
得分:0 
回复 2楼 wp231957
double太大,那应该怎么做,作业要求使用double 来声明
2015-11-09 09:44
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
得分:0 
回复 2楼 wp231957
用int 型和float 型就都可以运行出结果,为什么就不能用double
2015-11-09 09:50
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
我的电脑  也只能算到21的阶乘  再大了就不准了

程序代码:
#include <stdio.h>

int main(int argc, char* argv[])
{
    double t=1.0;
    for(int i=1;i<22;i++) t*=1.0*i;
    printf("%.0f",t);
    return 0;
}

DO IT YOURSELF !
2015-11-09 09:56
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:2 
你用%d 去输出double类型数据   咋想的

DO IT YOURSELF !
2015-11-09 09:57
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
得分:0 
回复 6楼 wp231957
我以为和float一样的  都是用开头的字母,那也就是数值太大就不能用double,那是一定要改成int,或float吗
2015-11-09 12:54
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:2 
int也不行  long long 也不行

你是不了解100的阶乘有多大  可以自己百度去  

DO IT YOURSELF !
2015-11-09 13:35
柳逸尘
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:131
注 册:2015-8-10
得分:5 
printf("%d的阶乘是%d",n,result);  把第二%d改成%lf就可以了。你输出的类型不符
2015-11-09 15:53
brokenheart
Rank: 2
等 级:论坛游民
帖 子:64
专家分:25
注 册:2015-11-7
得分:0 
回复 8楼 wp231957
我知道100的阶乘非常大,但是都不可以的话,那又改用什么来声明result
2015-11-09 16:16



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




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

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