标题:发一个求阶乘的程序!!!!大家来看看!!
只看楼主
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
 问题点数:0 回复次数:13 
发一个求阶乘的程序!!!!大家来看看!!
虽然这个程序很简单,但是我想,里面应该有一些能表现功力的细节问题,就好像strcpy函数一样。
所以,我写这个出来,请大家指正,如果有疏漏之处。
程序代码:
#include <stdio.h>
#include <ASSERT.H>

long fac(int n);

long fac(int n)
{
    assert(n >= 0);
    long sum = 1;
    int i;
    if (n > 0)
    {
        for (i=1; i<=n; i++)
        {
            sum *= i;
        }
    }
    return sum;
}

int main(void)
{
    long l;
    int n;
    
    scanf("%d", &n);
    
    printf("%ld\n", fac(n));
    
    return 0;
}


[[it] 本帖最后由 mqh21364 于 2008-5-28 15:11 编辑 [/it]]
搜索更多相关主题的帖子: int 阶乘 fac sum 
2008-05-28 15:09
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
得分:0 
0! = 1;

i like linux...
2008-05-28 15:22
xinyu4157
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-5-27
得分:0 
我 改改 看
不知怎么样
#include <stdio.h>
#include <ASSERT.H>

long fac(int n);

long fac(int n)
{

long sum = 1;
int i;
for (i=1; i<=n; i++)
{
sum *= i;
}

return sum;
}

int main(void)
{
long l;
int n;
        
 scanf("%d", &n);
if(n<=0)
printf("error!");
else
printf("%ld\n", fac(n));
getch();
}
2008-05-28 15:22
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
得分:0 
if (n > 0) 是多余的

[color=white]
2008-05-28 15:28
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
得分:0 
3楼越改越糟了。。。

[color=white]
2008-05-28 15:29
xinyu4157
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-5-27
得分:0 
[bo][un]Loli[/un] 在 2008-5-28 15:29 的发言:[/bo]

3楼越改越糟了。。。


帮忙指点一下
2008-05-28 15:51
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
得分:0 
test:

#include <stdio.h>
#include <ASSERT.H>

long fac(int n);

long fac(int n)
{
        assert(n >= 0);
        long sum = 1;
        int i;
        if (n > 0)
        {
                for (i=1; i<=n; i++)
                {
                        sum *= i;
                }
        }
        return sum;
}

int main(void)
{
        long l;
        int n;
        
        scanf("%d", &n);
        
        printf("%ld\n", fac(n));
        
        return 0;
}

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-05-28 16:29
zhoujianjian
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-05-28 17:29
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
得分:0 
哦,明白了,我搞错了,以为0的阶乘等于1呢!看来我的程序是有点问题的。
程序代码:
long fac(int n)
{
        assert(n >= 0);
        long sum = 1;
        int i;
        if (n  == 0) 
                sum = 0;
        for (i=1; i<=n; i++)
        {
                sum *= i;
         }
        return sum;
}
还有,3楼的兄弟,燕子说你越改越糟是因为你把我的断言给去掉了, 而且你的算不出来输入为0的结果。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-29 09:31
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
得分:0 
0的阶乘难道不是等于1??

[color=white]
2008-05-29 09:45



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




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

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