我需要帮助来找到编译器给我的错误:
C:\ Users \ AppData \ Local \ Temp \ ccaruUld.o Test3_Problem2.cpp :(。text + 0x73):对`SUM(float,float)'的未定义引用
C:\ Users \ Downloads \ collect2.exe [错误] ld返回1个退出状态
代码:
//Test 3 - Problem 2
#include<iostream>
#include<cmath>
using namespace std;
float SUM(float value,float sum);
int main()
{
//Introduce program to user
cout<<"This program asks for 5 numbers and averages the numbers \
together.";
//Declare variables
float averg,value[4],sum1=0;
//Allow user to enter 5 values
for(int i=0;i<=4;i++){
cin>>value[i];
}
sum1=SUM(value[4],sum1);
cout<<value[0];
}
float SUM(float vales[4],float sum) {
for(int i=0;i<=4;i++){
sum+=vales[i];
}
return sum;
}
无论我修复多少代码,都找不到。 我看着类似的问题,因为这是入门级C ++课程,所以所有答案对我来说似乎都是外来语言...
答案 0 :(得分:2)
我遇到了一些不同的问题,因此我重写了代码并评论了所修复的错误。希望这会有所帮助!
//Test 3 - Problem 2
#include<iostream>
#include<cmath>
using namespace std;
//THE FIRST PARAM WAS NOT DECLARED AS A VECTOR
//obs: That way you do not need to set the vector size limit or the variable name
float SUM(float[],float);
int main()
{
//Introduce program to user
//Forgot the " << endl;"
cout<<"This program asks for 5 numbers and averages the numbers \ together." << endl;
//Declare variables
//Declared vector size less than 5 numbers
float averg,value[5],sum1=0;
//Allow user to enter 5 values
for(int i=0;i<=4;i++){
cin >> value[i];
}
sum1 = SUM(value,sum1);
//You were print the vector at position 0 instead of the result of the sum
//and forgot the " << endl;"
cout << sum1 << endl;;
}
//VALES WAS NOT DECLARED AS A VECTOR
//obs: Beware of indentation
float SUM(float vales[],float sum) {
for(int i=0;i<=4;i++){
sum+=vales[i];
}
return sum;
}
答案 1 :(得分:1)
假设您在此处发布的所有代码都是全部,那么您的问题是您尚未实现SUM()函数。
此代码:
float SUM(float value,float sum);
称为函数原型,与该函数的实现不同。
https://en.wikipedia.org/wiki/Function_prototype
函数原型一词特别用在C和C ++编程语言的上下文中,在这些语言中,将函数的前向声明放在头文件中可将程序拆分为翻译单元,即拆分为编译器可分别翻译为目标文件的部分,由链接器组合成可执行文件或库。
这就是为什么您的IDE可能不会警告您SUM函数不存在的原因,因为您的代码顶部有一个函数原型,该函数原型将代码中的调用与该函数相匹配。
要解决此问题,您需要实现SUM功能:
float SUM(float value,float sum)
{
//Implementation
}
答案 2 :(得分:0)
尝试此,它应该工作:
//Test 3 - Problem 2
#include<iostream>
#include<cmath>
using namespace std;
float SUM(float vales[4],float sum) {
for(int i=0;i<=4;i++){
sum+=vales[i];
}
return sum;
}
int main()
{
//Introduce program to user
cout<<"This program asks for 5 numbers and averages the numbers \
together.";
//Declare variables
float averg, value[4], sum1=0.0;
//Allow user to enter 5 values
for(int i=0;i<=4;i++){
cin>>value[i];
}
sum1=SUM(value,sum1);
cout<<value[0];
}