在尝试使用函数查找向量的中位数时,我遇到了一些疯狂的错误。我不确定是什么导致了这些错误。
我正在尝试使用的函数声明为
#include <iostream>
#include <vector>
#include <string>
#include <iomanip>
#include <algorithm>
using namespace std;
double calcMed(int, vector<int>& studentScores);
//
double homeworkMed = calcMed(vectorSize, studentScores);
double calcMed(int vectorSize, vector<int>& studentScores)
{
double median;
sort(studentScores.begin(), studentScores.end());
median = studentScores[vectorSize / 2];
return median;
}
我知道如果我有一个奇怪的向量它就行不通但我只想让第一个有效。任何帮助,将不胜感激。
删除了“double calcMed(int vectorSize,vector&amp; studentScores)”上的分号,现在我收到两个不同的错误,两个错误都在函数名后面。
这两个错误都出现在{
的行上double calcMed(int vectorSize, vector<int>& studentScores)
{
答案 0 :(得分:2)
double calcMed(int vectorSize, vector<int>& studentScores);
{
double median;
sort(studentScores.begin(), studentScores.end());
median = studentScores[vectorSize / 2];
return median;
}
定义中的函数签名后不应该有分号。将第一行更改为
double calcMed(int vectorSize, vector<int>& StudentScores)
答案 1 :(得分:0)
链接器错误表示无法找到calcAverage()
的实现。您是否可以将calcAverage()
重命名为calcMed()
而不更新对此功能的任何调用?
要解决此错误,我会搜索calcAverage()
的所有代码,并将其重命名为calcMed()
或为其提供实现。
答案 2 :(得分:0)
抱歉,我明白了。出于某种原因,我将函数放在main()中。将它移出括号后,它解决了错误。感谢大家的帮助。