C++ 运行函数时获取错误
当我试图用一个函数来求向量的中值时,我得到了一些疯狂的错误。我不确定是什么导致了这些错误C++ 运行函数时获取错误,c++,function,C++,Function,当我试图用一个函数来求向量的中值时,我得到了一些疯狂的错误。我不确定是什么导致了这些错误 'Error 1 Error C2601:'calcMed':本地函数定义非法' 我尝试使用的函数声明为 #include <iostream> #include <vector> #include <string> #include <iomanip> #include <algorithm> using namespace std; dou
#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;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
双重计算(整数、向量和学生分数);
//
双作业MED=计算(向量大小、学生分数);
双重计算(整数向量大小、向量和学生分数)
{
双中位数;
排序(studentScores.begin(),studentScores.end());
中位数=学生分数[vectorSize/2];
返回中值;
}
我知道,如果我有一个奇数向量,它就不起作用了,但我只想让第一个向量起作用。任何帮助都将不胜感激
删除了“double calcMed(int vectorSize,vector&studentScores)”上的分号,现在我得到了两个不同的错误,它们都在函数名的后面
这两个错误都发生在具有{
double calcMed(int vectorSize, vector<int>& studentScores)
{
double calcMed(整数向量大小、向量和学生分数)
{
链接器错误表示找不到CalAverage()
的实现。您是否可能将CalAverage()
重命名为calcMed()
,并且不更新对此函数的任何调用
要修复此错误,我将在所有代码中搜索calAverage()
,然后将它们重命名为calcMed()
,或者为其提供一个实现。double calcMed(int vectorSize,vector&studentScores);
double calcMed(int vectorSize, vector<int>& studentScores);
{
double median;
sort(studentScores.begin(), studentScores.end());
median = studentScores[vectorSize / 2];
return median;
}
{
双中位数;
排序(studentScores.begin(),studentScores.end());
中位数=学生分数[vectorSize/2];
返回中值;
}
定义中的函数签名后不应有分号。请将第一行更改为
double-calcMed(int-vectorSize、vector和StudentScores)
对不起,我找到了。出于某种原因,我将函数放在了main()中。在我将其移出括号后,它解决了错误。感谢大家的帮助。你确定没有涉及CalAverage
吗?给我们一个答案,我敢打赌问题会很明显。除非你试图在main
中定义它,否则它是如何编译的?@chris it not.CNR.=p“运行函数时出错”不,不完全。这不是运行时错误。这是编译错误。至少应该对你所做的有一些想法。@ H2CO3这是我第一次在C++上使用函数,抱歉使用不正确的单词,我只知道如果我注释了我的函数,那么我的代码就不会有任何错误,所以我认为它有问题。正在初始化函数。很抱歉,我在复制代码后更改了向量名称,我更新了错误谢谢,我删除了该错误,并在下一行的{上又出现了两个错误。我在问题中发布了新错误。您不能在main()
中定义calcMed
。它应该在main()之外声明和定义
。我在'main()之前移动了if“谢谢。我仍然有同样的错误,尽管你能发布完整的代码吗?我会从一些小而简单的东西开始,比如HelloWorld
,测试它,然后添加一个返回0的函数,测试它,然后编辑它以向量作为参数,测试它,然后编辑它以打印向量,测试它,然后在打印之前对它进行排序。”测试它,然后打印它认为是中间的索引,测试它,然后返回中间值,最后删除打印输出语句并测试它,最重要的是,我永远不会添加不起作用的代码。如果你从头到尾写,它在最后才起作用,所以你无法测试它,所以它会失败。