请问这个程序错在哪?

img

img


请问为什么最后输出的结果会是1?究竟是哪一步出错了?应该怎么改呢?

函数里你定义个f=0,然后循环又i<=f要干啥?明明参数n表示阶乘啊,改成i<=n啊。f删掉!

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

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632