所以,我试图在.h文件中创建一个组合库。我有一个计算n的阶乘的函数,后面跟着一个函数(在同一个文件中),它使用阶乘函数来计算n的组合,选择给定的n和k的k。但是当我尝试编译代码时,它会向我引发这个错误:C2048函数'long factorial(int)'已经有一个body。 (我使用VS 2015年)C2084在不同功能的同一文件中调用函数时出错
下面的代码:
long int factorial(int n) // factorial of n
{
int summation = n;
for (int i = 1; i < n; i++)
{
summation *= i;
}
return summation;
}
double combination(int n, int k) // n choose k
{
return (factorial(n)/(factorial(k) * factorial(n - k)));
}
double permutation(int n, int k) // n permutation k
{
if (k != n)
return (factorial(n)/factorial(n - k));
else
return factorial(n);
}
double repetitiveCombination(int n, int k) // repetitive combination of n choose k
{
return combination(n - 1 + k, k);
}
double orderEquals(int n, int p) // order n objects of wich p are equal
{
return (factorial(n)/factorial(p));
}
无法重现。你有没有尝试创建[mcve]呢? – user2079303
有几件事情可能会导致这种情况。但不要让我们猜测。这不是提问的有效方法。你如何使用这段代码?它是在头文件还是代码文件中?你是否#包括它?如果是这样,如何和在哪里?就像其他人说的那样,重现问题的最低限度的例子将是一个好的开始。 –