#include <stdlib.h>
int C(int,int)
int main()
{
int x,y
scanf("%d,%d",&x,&y)
printf("%d",C(x,y))
}
int C(int n,int m) /*求n个取m个组合数*/
{
int i,j,s1,s2,s
for (i=1,s1=1i<=ni++)
{
s1=s1*i
}
for (j=1,s2=1j<=mj++)
{
s2=s2*j
}
s=s1/s2
return s
}
有两个问题,一个是fact()函数里的p应该定义成double类型,第二个是printf()不应该用%d输出double类型的值,应该用%.0f或者%.0lf顺便说一句,这个问题只要定义fact()一个函数就够了,输出的时候用
printf("result = %.0f\n",fact(n)/(fact(m)*fact(n-m)))
另外两个函数删掉就可以了。