我有以下程序计算数组的“部分和”。例如,如果我1, 1, 1, 1
通过std::cin
我的程序输入连续的整数,则会将结果计算为一个数组1, 2, 3, 4
。
#include <iostream>
int main()
{
int orig[10], copy[10];
std::cout << "please enter 10 numbers:" << std::endl;
for (int i = 0; i < 10; i++)
{
std::cin >> orig[i];
}
for (int i = 0; i < 10; ++i)
{
int sum = 0;
for (int k = i; k >= 0; --k)
{
sum += orig[k];
}
copy[i] = sum;
}
std::cout << "the ascending order is:\n" << endl;
for (int i = 0; i < 10; ++i)
std::cout << copy[i] << std::endl;
}
我的问题是我希望有一种方法可以做到这一点,而无需将值复制到另一个数组中。到目前为止,我还没有弄清楚如何。如您所见,在上面的代码中,我有一个名为的整数数组copy
,我将总和放入其索引中。我知道这可以使用std::vector
,partial_sum
但我宁愿不使用它,因为它不允许我完全理解它是如何工作的。
有任何想法吗?谢谢。