【发布时间】:2021-02-28 03:35:39
【问题描述】:
我正在尝试hackerrank问题,他们给出的输出是“打印两个以空格分隔的整数,分别描述最佳(最高)得分增加和最差(最低)得分减少的次数。”现在,每当我尝试只给出 cout 时,它都会抛出一个错误,提示“非 void 函数不返回值”。现在通常情况下,我曾经在这些情况下返回 0,但这里是说“没有从 'int' 类型的返回值到函数返回类型的可行转换。”我真的不知道如何在向量函数中返回 int 或者简单地说,如何将答案返回给编译器。
这是我的功能
vector<int> breakingRecords(vector<int> scores) {
int min=0,max=0;
int maxUpdate=0;
int minUpdate=0;
for(int i=0;i<scores.size();i++)
{
if(i==0)
{
min=max=scores[0];
break;
}
if(scores[i]>scores[i-1])
{
max=scores[i];
maxUpdate++;
}
else if(scores[i]<scores[i-1])
{
min=scores[i];
minUpdate++;
}
}
return 0;
}
注意:如果我的逻辑有任何错误,请不要纠正。我想自己找出逻辑中的错误,帮助我运行代码。
【问题讨论】:
-
您能否解释一下您希望如何将
0中的return语句中的单个整数值转换为vector<int>,这是函数声明返回的内容?您希望它在 C++ 中如何工作? -
我没有。我明白你在说什么,但我只是在碰运气。有什么方法可以打印 minUpdate 和 maxUpdate 而不返回任何其他内容?
-
如果您不返回“其他任何内容”。这就是
void的用途。这里真正的问题是无用的在线编码/黑客/竞赛网站,例如“hackerrank”,仅由随机的编程难题列表组成,没有任何一段实际尝试以任何有组织的方式教授 C++ 的内容。您能够学习如何实现这些算法的唯一地方是 C++ 教科书。而不是hackerrank。那么,如果你的目标是学习 C++,你认为哪里是最适合你学习的地方? -
它来自一本书,但这些地方的视觉效果更好,并且可以给人一种竞争感。无论如何,不是在这里讨论这个问题,但我找到了答案。我制作了一个向量数组并将 maxupdate 和 minupdate 放入其中并返回它。像魅力一样工作。
标签: c++ function vector compiler-errors return