请问这种情况怎么解决

问题遇到的现象和发生背景

调试时出现0x00044FC9 处有未经处理的异常(在 ConsoleApplication2.exe 中): 0xC0000094: Integer division by zero。

问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int m, k;
    long res;
    do {
        printf("input m,k:");
        scanf_s("%d,%d", &m, &k);
    } while (m <= 0 || k <= 0 || m < k);
    long Fact(int n);
    res = Fact(m) / (Fact(k)*Fact(m - k));
    printf("%d里面取出%d个组合为%1d\n", m, k, res);
    return 0;
}
long Fact(int n)
{
    int i;
    long result = 1;
    if (n < 0)
    {
        printf("输入数据错误\n");
    }
    else
    {
        for (i = 2; i <= n;i++)
        {
            result = result * i;
        }
    }
    return 0;
}

运行结果及报错内容

0x00044FC9 处有未经处理的异常(在 ConsoleApplication2.exe 中): 0xC0000094: Integer division by zero。

Integer division by zero。
分母为0所以报错。

res = Fact(m) / (Fact(k)*Fact(m - k));

要对Fact(k)*Fact(m - k)判断是否0,如果为0就不能进行除法运算了。

Integer division by zero。除法的分母为0了,要判断一下。

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