错误:功能参数太少
问题描述:
我知道有很多类似的问题,但我太新了。所以我的问题是我必须做一个makefile并编译我的项目,但在某些时候它会返回错误。错误:功能参数太少
Main.cpp的
#include <iostream>
#include <stdlib.h>
#include "SquareRootCalculation.h"
using namespace std;
int main(int argc, char* argv[])
{
int number = atoi(argv[0]);
int th = atoi(argv[1]);
float result = SquareRoot(number, th);
return 0;
}
InitialGuess.cpp
#include <iostream>
#include <math.h>
using namespace std;
int InitialGuess(int number)
{
float numberLength = 0;
for(; number != 0; number /= 10, numberLength++);
float n = nearbyint(sqrt(numberLength));
float y = numberLength * pow(10, n);
return 0;
}
SqrtCalc.cpp
#include <iostream>
#include "InitialGuess.h"
#include <math.h>
using namespace std;
int SquareRoot(int number, int th, float y)
{
int initialGuess = InitialGuess(y);
float x = initialGuess;
for (int k=1; k< th; ++k)
{
x = (x + (number/x))/2;
}
cout<<x;
return 0;
}
还我InitialGuess.h
int InitialGuess(int number, float y);
和sqrtcalc.h
int SquareRoot(int number, int th);
和一个生成文件
all:
g++ Main.cpp InitialGuess.cpp SquareRootCalculation.cpp -o FR
它在这一点上返回一个错误
InitialGuess.h 1 In function 'int SquareRoot (int,int,float)'
InitialGuess.h "too few arguments 'int InitialGuess(int, float)'
SqrtCalc 7错误
答
误差是自我解释:
在你定义int InitialGuess(int number, float y);
.h文件中 - 以2个参数,但在.cpp文件int InitialGuess(int number)
- 一个
同样的问题SquareRoot
功能
答
这是你的函数的声明:
int SquareRoot(int number, int th, float y)
,这是你怎么把它称为:
SquareRoot(number, th);
你错过ŧ他第三个论点。
此外,InitialGuess
需要两个参数,但你有它。