使用数组和函数

时间:2013-11-22 13:44:19

标签: c++ arrays function

我是编程和C ++的新手,我正在做这件事

编写一个函数来返回数组范围的总和。阵列,以及 范围的起点和终点必须作为函数的参数给出。 您可能想要考虑检查起点和终点是否有效, 也就是说,起点不大于终点,即起点 不小于零,并且终点不大于数组的末尾。 您需要考虑如何告诉函数该数组有多长。

请帮助

2 个答案:

答案 0 :(得分:1)

通过const std::vector<int>& v并检查beginend是否不超过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

这有帮助吗?