标题:[求助] 求阶乘的函数为什么结果总是零
只看楼主
tanjinglei
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-8-15
 问题点数:0 回复次数:9 
[求助] 求阶乘的函数为什么结果总是零
#include<stdio.h>
#include<math.h>
float fac(int k)
{int t=1,i;
for(i=2;i<=k;i++)
t*=i;
return t;
}
main()
{ int m,n;
float c;
printf("Input m,n:");
scanf("%d,%d",&m,&n);
c=fac(m)/(fac(n)*fac(m-n));
printf("m!=%d n!=%d cmn zhi wei:%f\n",fac(m),fac(n),c);
getch();
return 0;
}
搜索更多相关主题的帖子: fac 函数 阶乘 int float 
2007-08-17 16:56
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
刚好做题时写了一个,计算结果保存在s数组中,n<=1000时保证结果精确
#include<math.h>
int s[3000];
int main(void)
{
int i,j;
int n;
int x=2999;
s[x]=1;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
for(j=2999;j>=x;j--)
s[j]*=i;
for(j=2999;j>=x-3;j--)
{
s[j-1]+=s[j]/10;
s[j]=s[j]%10;
}
for(j=0;j<3000;j++)
if(s[j]) break;
x=j;
}
return 0;
}

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-17 17:05
noah_shi
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-8-14
得分:0 

问题:
数据类型混乱!
  那你所有int改成float,就没问题了!


2007-08-17 17:05
tanjinglei
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-8-15
得分:0 
刚学c,版主的有点难懂。三楼说的正确,为什么会出现这种情况呢?
2007-08-17 17:19
ConZhang
Rank: 1
来 自:北京
等 级:新手上路
帖 子:282
专家分:0
注 册:2007-8-7
得分:0 

#include<stdio.h>
#include<math.h>
float fac(int k)
{int t=1,i;
for(i=2;i<=k;i++)
t*=i;
return t;
}
main()
{ int m,n;
float c;
printf("Input m,n:");
scanf("%d,%d",&m,&n);

c=fac(m)/(fac(n)*fac(m-n));
printf("m!=%.0f n!=%.0f cmn zhi wei:%f\n",fac(m),fac(n),c);
getch();
return 0;
}
这样改就好了

2007-08-17 17:44
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
还是提但是用高精度算法,像版主那样

不然无论是float还是double都有溢出的时候~~~~~而且数字表示不够精确

[此贴子已经被作者于2007-8-17 17:49:04编辑过]


偶学编程,也许本身就是一个错。。。
2007-08-17 17:48
ConZhang
Rank: 1
来 自:北京
等 级:新手上路
帖 子:282
专家分:0
注 册:2007-8-7
得分:0 
楼上说的有道理!
2007-08-17 17:51
lijy520
Rank: 2
等 级:论坛游民
帖 子:119
专家分:42
注 册:2007-8-8
得分:0 
溢出

2007-08-17 18:35
tanjinglei
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-8-15
得分:0 
Thank you
2007-08-17 19:26
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
得分:0 
孔明的太高深了``下来好好看看```

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-08-17 19:32



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




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

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