运行函数时出错

时间:2014-01-19 21:57:23

标签: c++ function

在尝试使用函数查找向量的中位数时,我遇到了一些疯狂的错误。我不确定是什么导致了这些错误。

  1. '错误1错误C2601:'calcMed':本地函数定义是非法的'
  2. 我正在尝试使用的函数声明为

    #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)
    {
    

3 个答案:

答案 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()中。将它移出括号后,它解决了错误。感谢大家的帮助。