| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1051 人关注过本帖
标题:求帮忙看看这个程序为什么output limit exceeded
只看楼主 加入收藏
rainnese
Rank: 1
来 自:广州
等 级:新手上路
帖 子:51
专家分:0
注 册:2016-1-15
结帖率:56.25%
收藏
已结贴  问题点数:5 回复次数:9 
求帮忙看看这个程序为什么output limit exceeded
求1到20间任意数的阶乘
#include<stdio.h>
double func(int n)
{
    double sum;
    if (n == 1 || n == 0)sum=1.0;
    else sum = func(n - 1)*n;
    return sum;
}
int main()
{
    int n;
    double sum;
    while (scanf("%d", &n) && n != EOF)
    {
        printf("%.0lf\n",func(n));
    }
    return 0;
}
搜索更多相关主题的帖子: double return 
2016-01-15 16:42
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:1 
#include<stdio.h>
double func(int n)
{
    if (n == 0)return 1;//你原来这个地方可能有问题,最后一次调用后sum无论之前为何值都会被赋值为1的吧,对n的判断只保留一个就好,0或1都可以
    else return func(n - 1)*n;
}
int main()
{
    int n;
    double sum;
    while (scanf("%d", &n) && n != EOF)
    {
        printf("%.0lf\n",func(n));
    }
    return 0;
}
2016-01-15 17:14
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
用的手机,没法调试,你自己调试下看有没问题
2016-01-15 17:16
rainnese
Rank: 1
来 自:广州
等 级:新手上路
帖 子:51
专家分:0
注 册:2016-1-15
收藏
得分:0 
回复 3楼 wengbin
调试过没有问题,可是提交的时候总是output limit exceeded

计算机专业的大学生
2016-01-15 17:26
rainnese
Rank: 1
来 自:广州
等 级:新手上路
帖 子:51
专家分:0
注 册:2016-1-15
收藏
得分:0 
回复 2楼 wengbin
改了还是不行

计算机专业的大学生
2016-01-15 17:29
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:1 
嗯,你原来代码中求阶承那个是没问题的,是我想错了。你的问题可能出在while循环上,你把循环去了试试
2016-01-15 17:45
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:1 
主要是   while (scanf("%d", &n) && n != EOF)的问题,无法退出while循环。

能编个毛线衣吗?
2016-01-15 17:51
rainnese
Rank: 1
来 自:广州
等 级:新手上路
帖 子:51
专家分:0
注 册:2016-1-15
收藏
得分:0 
回复 7楼 wmf2014
为什么不能退出?那要怎么才能退出啊?

计算机专业的大学生
2016-01-15 18:06
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:2 
修改为while (scanf("%d", &n)!= EOF)试试

能编个毛线衣吗?
2016-01-15 18:24
rainnese
Rank: 1
来 自:广州
等 级:新手上路
帖 子:51
专家分:0
注 册:2016-1-15
收藏
得分:0 
回复 9楼 wmf2014
为什么要输入三次才能结束啊

计算机专业的大学生
2016-01-15 18:45
快速回复:求帮忙看看这个程序为什么output limit exceeded
数据加载中...
 
   



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

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