我是编程和C ++的新手,我正在做这件事
编写一个函数来返回数组范围的总和。阵列,以及 范围的起点和终点必须作为函数的参数给出。 您可能想要考虑检查起点和终点是否有效, 也就是说,起点不大于终点,即起点 不小于零,并且终点不大于数组的末尾。 您需要考虑如何告诉函数该数组有多长。
请帮助
答案 0 :(得分:1)
通过const std::vector<int>& v
并检查begin
和end
是否不超过v.size()
:
int myfunction (const std::vector<int>& v, int begin, int end)
{
if (begin < 0 || begin >= v.size() || end < 0 || end >= v.size() || begin > end) {
// Error handling
throw std::runtime_error ("Wrong begin or end");
}
// Compute sum:
int ret = 0;
for (int i = begin; i < end; ++i)
ret += v[i];
return ret;
}
答案 1 :(得分:1)
本质上,数组是值列表。你被要求做的是在一个范围内添加一些这些值。假设您的数组有10个值。它们将被0到9的值索引(例如,如果你的数组名称是Charlie,你可以通过说“Charlie [0]”来访问第一个元素。
为了在数组中添加一个范围,你需要传递一个函数数组的名称(在我们的例子中,'Charlie'),起始值和结束值。这些必须是介于0和数组长度-1之间的数字,因为数组中的值始终从零开始,并且数组中的最后一个值的索引比长度小1;意思是,10的数组的索引在0到9之间。
这个函数需要一个变量来保存值的总和,并且需要使用某种循环来迭代循环。
在伪代码中,你会看到类似的东西:
sum = 0
for each value between x (the starting value) and y (the ending value)
sum = sum + Array[value]
return sum
这有帮助吗?