为什么这个函数没有被定义

#include
#include
int Factorial();

int main()

{
int n, m;
scanf("%d %d", &m, &n);
double C;
C=Factorial(n)/Factorial(m)/Factorial(n-m);
printf("result = %0.f", C);

return 0;

}

你只是申明啊,int Factorial();
没有写函数实现代码啊,而且函数你也没写参数

int Factorial(int n)
{
    int s = 1;
    for(int i=2;i<=n;i++)
        s*=i;
    return s;
}

定义了int Factorial();方法,但是没有具体的实现。

#include <stdio.h>
#include <stdlib.h>
long Factorial(int n);
int main()
{
int n, m;
scanf("%d %d", &m, &n);
double C;
C=Factorial(n)/Factorial(m)/Factorial(n-m);
printf("result = %0.f", C);

return 0;
}

long Factorial(int n)
{
    if(n == 0)
    {
        return 1;
    }
    else
    {
        return n * Factorial(n - 1);
    }
}

你没有Factorial函数的实现。另外,阶乘数可能很大,建议用double输出。代码修改如下:

#include <stdio.h>
double Factorial(int n);

int main()

{
    int n, m;
    scanf("%d %d", &m, &n);
    double C;
    C = Factorial(n) / Factorial(m) / Factorial(n - m);
    printf("result = %0.f", C);

    return 0;
}

double Factorial(int n)
{
    double s = 1;
    for (int i = 1; i <= n; i++)
        s *= i;
    return s;
}

看英文函数名这是要写个阶乘?声明了阶乘函数,你这个阶乘函数没实现哇,而且你的声明不对呀,明显是有一个整形参数的,你声明的时候里面怎么没参数?

没有具体实现,只是声明了