【发布时间】:2015-10-19 01:29:18
【问题描述】:
我编写了一个 C 程序来计算使用函数从 n 个不同对象中选择 k 个对象的方法的数量。
#include<stdio.h>
long f(int a)
{
if(a==1||a==0)return(0);
else return(a*f(a-1));
}
int combination(int N,int K)
{
long int NF,KF,NMKF;
NF=f(N);
KF=f(K);
NMKF=f(N-K);
return(NF/(KF*NMKF));
}
int main()
{
int n,k;
scanf("%d%d",&n,&k);
combination(n,k);
}
但是编译器显示以下错误信息
floating point exception (core dumped)
如何避免?
【问题讨论】:
-
从阶乘计算二项式系数是一个非常糟糕的主意。
-
这个错误看起来像一个算术错误(除以零,以零取模,等等......)
-
您可以自己发现这一点。您应该学习如何使用调试器。
-
编译器无法显示异常。 (除非在最奇怪的情况下编译器自行崩溃)
标签: c algorithm function combinations coredump