| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1841 人关注过本帖
标题:阶乘计算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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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
快速回复:阶乘计算result=1*2*3.......*(n-1)*n
数据加载中...
 
   



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

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