xdm,这个c语言求阶乘的代码,哪里出错了呢?怎么就是计算的结果不对呢?求解!


#include <stdio.h>


double fact( int n );

int main(void)
{    
    int m, n;
    double result; 

    scanf("%d%d", &m, &n);
    if(m > 0 && n > 0 && m <= n){
        result = fact(n)/fact(n-m);
        printf("result = %.0f\n", result);    
    }
system("pause");
    return 0;
}

/* 请在这里填写答案 */


double fact(int n)
{ while (n>1)
{
    n=n*(n-1);
n--;
}
    return (double)n;
}

你这不科学啊,为什么用一个变量?