【发布时间】:2020-08-22 03:20:03
【问题描述】:
编写一个名为 findMultipleOfFives 的函数,该函数将整数向量作为参数(作为常量引用传递)。如果向量中的每个数字都是数字 5 的倍数,则您的函数应返回 true。否则,该函数应返回 false。
例如,对于给定的向量变量 vector all_values{10, 20, 30, 40, 50},函数 findMultipleOfFives 将返回 true。但是,对于给定的向量变量,vector all_values{10, 24, 30, 40, 5},该函数将返回 false。
我写的代码:
//Name
//This program will determine if a vector has multiples of fives
#include <iostream>
#include <vector>
using namespace std;
string findMultipleOfFives(vector<int> &all_values);
vector<int> all_values{ 10, 20, 30, 40, 50 };
int main()
{
cout << "This program will determine whether a vector is full of multiples of five." << endl;
findMultipleOfFives(all_values);
}
string findMultipleOfFives(vector<int>& all_values)
{
for (int count = 0; count < 5; count++)
{
all_values[count] = 5;
if (all_values[count] % 5 == 0)
{
all_values[count]++;
return "True";
}
else
{
return "False";
}
}
}
在我的main() 函数中调用该函数时出现错误:
避免使用自定义构造和销毁的未命名对象
除了弄清楚该错误的含义以及我做错了什么之外,我还停留在如何阅读向量的每个元素上。我知道使用模数来确定单个值是否是 5 的倍数,但我不知道如何循环并确定每个值的值并返回真或假。
【问题讨论】:
-
您是否希望每个人都计算代码中的行数以找到第 17 行,或者您可能想明确指出错误所在的行?将向量中的每个值都赋值为 5 的目的是什么,只是为了查看它在除以 5 时是否有余数。答案当然总是为零。最后,通过阅读作业,您的函数的意图似乎很明显是返回
bool值true和false而不是文字文本字符串。究竟是什么让你相信这个函数应该返回std::strings,而不是bools? -
然后您编辑了您的问题并删除了为向量中的每个值分配 5 的行。发生了什么?您是否复制/粘贴错误,什么样的复制/粘贴错误会插入这样的额外行?或者,也许这仍然不是真正的代码?
-
@SamVarshavchik 我编辑并更改了整个部分,因为我一直在尝试修复它?我不习惯使用stackoverflow,我通常使用的网站在您上传时会插入行号。我只是寻求帮助,没有必要居高临下。
-
@yellogs 仅仅因为您正在修复代码并不意味着您应该重新编写问题以匹配您的修复。这会使已发布的 cmets 和答案无效。如果你想显示编辑,那很好,但它们应该在之前的内容之外完成,而不是替换它。
-
@RemyLebeau Gotcha
标签: c++ function for-loop vector