#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;
}
看英文函数名这是要写个阶乘?声明了阶乘函数,你这个阶乘函数没实现哇,而且你的声明不对呀,明显是有一个整形参数的,你声明的时候里面怎么没参数?
没有具体实现,只是声明了