C语言组合数函数纠错

Python09

C语言组合数函数纠错,第1张

#include <stdio.h>

#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)))

另外两个函数删掉就可以了。