标题:我这个函数有什么问题呢
只看楼主
起个名真难
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2013-3-29
结帖率:81.82%
已结贴  问题点数:18 回复次数:7 
我这个函数有什么问题呢
编写函数,求m!/(n!(m-n)!)的值,结果由函数值
返回。m与n为两个正整数且要求m>n。例如:m=12,n=8时,运行
结果为495.000000。
**********/
float func(int m, int n)
{
 float sum=0;
 long i,a1=1,a2=1,a3=1,t;
  if(m<n){t=m;m=n;n=t;}
 for(i=1;i<=abs(m);i++)
 {a1=a1*i;}
 for(i=1;i<=abs(n);i++)
 {a2=a2*i;}
 for(i=1;i<=abs(m-n);i++)
 {a3=a3*i;}
 sum=(float)a1/(a2*a3);
 
 return sum;
}
编译可以通过,但结果不是预期所想的
搜索更多相关主题的帖子: long 正整数 
2013-04-05 08:32
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:3 
结果没问题

可能你测试值过大吧   N!如果过20的话  就太大了  你这个程序估计是做不了的

DO IT YOURSELF !
2013-04-05 08:39
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:3 
你定义的int型可能超出范围了,数值过大

Maybe
2013-04-05 08:57
梅可伟梅可伟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:180
注 册:2013-3-11
得分:3 
#include <stdio.h>
#include <math.h>
float func(int m, int n)
{
 float sum=0;
 long i,a1=1,a2=1,a3=1,t;
   if(m<n){t=m;m=n;n=t;}
 for(i=1;i<=abs(m);i++)
 {a1=a1*i;}
 for(i=1;i<=abs(n);i++)
 {a2=a2*i;}
 for(i=1;i<=abs(m-n);i++)
 {a3=a3*i;}
 sum=(float)a1/(a2*a3);

 return sum;
}
void main()
{
    int m,n;
    scanf("%d%d",&m,&n);
    printf("%f\n",func(m,n));
}//我试了一下,完全能通过,看你是不是输出的时候格式错了,如果格式错了,那么输出的结果就为0,另外如果你处理的数字过大也不行
2013-04-05 10:47
起个名真难
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2013-3-29
得分:0 
回复 4楼 梅可伟梅可伟
结果正确吗,我的编译也能通过啊
2013-04-06 15:59
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:3 
回复 5楼 起个名真难
能通过那是当然,只要你的代码没有错误
但你的范围是受限制的,这个可是调试不出来的

三十年河东,三十年河西,莫欺少年穷!
2013-04-06 17:26
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
得分:3 
回复 2楼 wp231957
据说可以用数组来实现 超级大数的存储问题,请前辈指教一二啊……
2013-04-06 19:11
czzdcn123
Rank: 7Rank: 7Rank: 7
来 自:江西
等 级:黑侠
威 望:3
帖 子:258
专家分:510
注 册:2013-3-7
得分:3 
数字太大会溢出的
2013-04-06 19:30



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




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

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