我刚刚开始在大学学习C ++,我的任务是执行以下操作:我必须编写一些代码,使用迭代(即循环)来计算整数数组中项目的累积总和; 我的代码是:
int main() {
int myArray[] = {1,2,3,4,5};
int i;
int j;
j+= myArray[];
for(i=0;i<5;i++){
printf("%d\n",myArray[j]);
}
}
虽然这段代码没有产生我想要的东西,但我对下一步该做什么很困惑。
答案 0 :(得分:2)
int main() {
int myArray[] = {1,2,3,4,5};
int sum = 0;
for(int i=0; i<5; i++)
sum += myArray[i] ;
std::cout << sum;
}
此处sum
初始化为0,并且数组中的每个元素都会在循环中添加到sum
。
您可以使用std::accumulate
执行相同操作,因此您不必担心数组的大小。
#include <iostream>
#include <algorithm>
int main() {
int myArray[] = {1,2,3,4,5};
std::cout << std::accumulate(std::begin(myArray), std::end(myArray), 0);
}
请注意,std::begin()
中引入了std::end()
和C++11
。对于早期版本,您将不得不使用指针:
std::accumulate(myArray, myArray + 5, 0);
答案 1 :(得分:1)
我已经用注释和一行代码编辑了代码。请查看它们。
#include <cstdio>
int main() {
// Array and index into it.
int myArray[] = {1,2,3,4,5};
int i;
// Initialise sum to zero for starting.
int sum = 0;
// Adding whole array will not work (though it would be nice).
// Instead, go through array element by element.
// j += yArray[];
for (i = 0; i < 5; i++) {
// Add element to sum and output results.
sum += myArray[i];
printf ("Adding %d to get %d\n", myArray[i], sum);
}
// Output final result.
printf ("Final sum is: %d\n", sum);
}
另请注意,我已根据您的问题使用了printf
,但您确实应该使用C ++流设施进行输入和输出。
该代码的输出是:
Adding 1 to get 1
Adding 2 to get 3
Adding 3 to get 6
Adding 4 to get 10
Adding 5 to get 15
Final sum is: 15
答案 2 :(得分:1)
请注意<algorithm>
具有以下功能:
const int myArray[] = {1,2,3,4,5};
const int sum = std::accumulate(std::begin(myArray), std::end(myArray), 0);
如果你想自己做循环,你可以使用for-range(从c ++ 11开始):
const int myArray[] = {1, 2, 3, 4, 5};
int sum = 0;
for (auto e : myArray) {
sum += e;
}
答案 3 :(得分:0)
您需要将j+= myArray[]
放在循环中并将i
放在myArray的[]
内以执行求和操作。因此,您的代码可以按如下方式修改,以匹配您想要执行的操作。在对数组中的所有元素求和之后,它退出for-loop,并在第二个printf
中打印最终求和。请注意,j
已被sum
取代,以便可读。
int main() {
int myArray[] = {1,2,3,4,5};
int sum=0; // sum
for(int i=0; i<5; i++){
sum += myArray[i];
printf("%d\n", myArray[i]);
}
printf ("Sum: %d \n", sum);
}
您可以在此link看到可运行的代码。希望这有帮助。
答案 4 :(得分:0)
int main() {
int yourArray[] = {1,2,3,4,5};
int sum = 0;
for(int i=0; i<5; i++) {
sum = sum + yourArray[i] ;
std::cout << sum;
}
}
在上面的代码中,for
循环将迭代5次,每次将数组中的值添加到sum
变量。
在第一次迭代中,sum
的值将为0,yourArray[0]
的值将为1,因此sum = 0 + 1;
。
在第二次迭代中,sum
的值将为1,而yourArray[1]
的值将为2,因此sum = 1 + 2;
。
等等......
每次迭代完成后,我们输出sum
,即1,3,6,10,15。
所以15是数组所有值的完整和。