简单的C语言运行问题

​​​​​​​​​​​​​​​​​​​​​​​​​​​​为什么这里的result显示的值不是能得到正确的结果

#include<stdio.h>
#include<math.h>
double fact(int n);
int main()
{
    double result;
    int m,n;
    scanf("%d %d",&m,&n); 
    result=fact(n)/fact(m)/fact(n-m);
    printf("result = %.0f",result);
    return 0;
}

double fact(int n)
{
    double r=n;
    int i;
    for(i=1;i<=n;i++)
    {
        r=r*(n-i);
    }
    return r;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^