有两个问题,一个是fact()函数里的p应该定义成double类型,第二个是printf()不应该用%d输出double类型的值,应该用%.0f或者%.0lf顺便说一句,这个问题只要定义fact()一个函数就够了,输出的时候用printf("result = %.0f\n",fact(n)/(fact(m)*fact(n-m)));另外两个函数删掉就可以了。