我有以下代码,当我尝试构建它时,我一直收到此错误:
错误:
1>------ Build started: Project: practice, Configuration: Debug Win32 ------
1> pratice.cpp
1>pratice.obj : error LNK2019: unresolved external symbol "double __cdecl CalcScore(class std::vector<double,class std::allocator<double> > *)" (?CalcScore@@YANPAV?$vector@NV?$allocator@N@std@@@std@@@Z) referenced in function _main
1>C:\Users\Neil Armstrong\Desktop\practice\Debug\practice.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
代码是:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
double CalcScore(double);
void points(double);
void grade(char);
int main ()
{
double CalcScore(vector<double> *);
// Declare constant
double first_exam = 0;
double second_exam = 0;
double final_exam = 0;
double aHomework = 0;
double totalPoints = 0;
double median = 0;
double SUM = 0;
// Declare a vector of doubles
vector<double> homework;
// Ask the user to enter in the score for the first midterm.
cout << "\nPlease enter in the score for the first exam: ";
// This value is read in and saved.
cin >> first_exam;
// Ask the user to enter in the score for the second midterm.
cout << "\nPlease enter in the score for the second exam: ";
// This value is read in and saved.
cin >> second_exam;
// Ask the user to enter in the score for the final exam.
cout << "\nPlease enter in the score for the final exam: ";
// This value is read in and saved.
cin >> final_exam;
// Store the homework scores in a vector.
// Uses the push_back function to add each homework score to the vector.
// Then asks the user to enter in the scores for the homework assignments.
// Any number of scores can be entered in.
// When done, the user signals completion by pressing Ctrl-z (the Ctrl key
// and the letter z) followed by the Enter key.
cout << "\nEnter the score for a homework assignment(press ctrl-z to quit): ";
cin>>aHomework;
while (!cin.eof()) // No Ctrl-Z
{
if (cin.good()) // The data entry was valid, i.e., an integer
{
homework.push_back(aHomework);
}
else
{
// The failbit was set, so this entry must be invalid.
cout << "Invalid entry!" << endl;
cin.clear(); // clear error flag
cin.sync(); // Re-sync stream
}
// Get next data entry
cout << "\nEnter the score for a homework assignment(press ctrl-z to quit): ";
cin>>aHomework;
}
median = CalcScore( &homework);
cout << endl;
system("PAUSE");
return 0;
}// End main
double CalcScore(vector<double> homework)
{
double median = 0;
const int TWO = 2;
size_t size = homework.size();
sort(homework.begin( ), homework.end( ) );
if (size % TWO == 0)
{
median = (homework[size / TWO - 1] + homework[size / TWO]) / TWO;
}
else
{
median = homework[size / TWO];
}
return median;
}
解决此错误的任何帮助都会很棒 谢谢, 尼尔
答案 0 :(得分:1)
你宣布了
double CalcScore(vector<double> *);
但从未实施过。你实施了:
double CalcScore(vector<double> homework)
此外,将函数声明/定义移到main
之外。