| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1410 人关注过本帖
标题:小女求教,求阶乘,此函数哪里有问题啊。大侠指教
只看楼主 加入收藏
84531933
Rank: 1
等 级:新手上路
帖 子:31
专家分:2
注 册:2005-4-2
收藏
得分:0 
呵呵,还是10楼发现问题所在了,
int ff(int n)
{
int i;
for(i=1;i<n;i++)
   n=n*i;
return(n);
}

for循环里面的判断条件是i<n,但是n在循环体又因为n=n*1而不停的变大,最后那n的值超出了int的范围,所以结果就是个非常大的负数。

int ff(int n)
{
int i,j;
j=1;
for(i=1;i<=n;i++)
   j=j*i;
return(j);
}


2012-09-20 21:38
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
收藏
得分:0 
10楼已经说了,就不再讲了,  不过  话说    你是妹子。。。。。
2012-09-20 21:43
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
围观

我要成为嘿嘿的黑客,替天行道
2012-09-21 00:01
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
回复 12楼 a7882669
哇,原来楼主弄个男标记是忽悠人的呀。
2012-09-21 00:54
chengyang123
Rank: 2
等 级:论坛游民
帖 子:11
专家分:40
注 册:2012-9-19
收藏
得分:0 
#include<stdio.h>
int ff(int n)
{
int i,fn=1;
for(i=1;i<=n;i++)
fn=fn*i;
return fn;
}
main()
{
    int a,y;
    a=5;
    y=ff(a);
    printf("%d",y);
}
这样就可以了。
2012-09-21 08:20
greennet111
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2012-4-14
收藏
得分:0 
回复 7楼 lz1091914999
你的方法很不错喔,十楼的讲解更精彩,不过我分析了下,你的这个for循环刚好杜绝了那种情况哦

巾帼不让须眉
2012-09-21 08:41
greennet111
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2012-4-14
收藏
得分:0 
回复 9楼 liuguanglei
不好意思啊  你错了,你那个结果算不出阶乘的  只能得到n*(n-1) 比如输入5  得到5x4=20

巾帼不让须眉
2012-09-21 08:45
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
按你的思路:
#include<stdio.h>
int ff(int n)
{
int i,m=1;
for(i=1;i<=n;i++)
   m*=i;
return(m);
}
main()
{
int a,y;
a=4;
y=ff(a);
printf("%d",y);
}
仔细对比一下。
2012-09-21 13:04
greennet111
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2012-4-14
收藏
得分:0 
回复 18楼 Mirob
所言极是啊!!!多谢赐教

巾帼不让须眉
2012-09-25 09:58
guihuaiyu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-25
收藏
得分:0 
就是你的逻辑有点错误,不能用n=n*i这个语句,你另外定义一个变量m,改成m=m*i;然后再for语句中吧i<n改成i<=n;就行了,n!可以从1取到n,而小于等于就取不到n了。
2012-09-25 14:01
快速回复:小女求教,求阶乘,此函数哪里有问题啊。大侠指教
数据加载中...
 
   



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

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