在 C++ 中将数组中的所有数字相加

adding all numbers inside an Array in c++

本文关键字:数字 C++ 数组      更新时间:2023-10-16

我刚开始在大学学习C++,我的任务是执行以下操作:我必须编写一些代码,这些代码将使用迭代(即循环)来计算整数数组中项目的累积总和;我的代码是:

int main() {
    int myArray[] = {1,2,3,4,5};
    int i;
    int j;
    j+= myArray[]; 
    for(i=0;i<5;i++){
    printf("%dn",myArray[j]);
  }
}    

虽然这段代码没有产生我正在寻找的东西,但我对下一步应该做什么感到困惑。

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);

我已经用注释和一行代码编辑了您的代码。 请查看它们。

#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 %dn", myArray[i], sum);
    }
    // Output final result.
    printf ("Final sum is: %dn", 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

请注意,<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;
}
您需要

j+= myArray[]放入循环中,并将i放入myArray的[]中才能执行求和操作。因此,可以按如下方式修改您的代码以匹配您想要执行的操作。对数组中的所有元素求和后,它退出 for 循环,并打印最终求和,如第二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("%dn", myArray[i]);
    }
    printf ("Sum: %d n", sum);
}

您可以在此链接中看到可运行的代码。希望这有帮助。

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 是数组所有值的完整总和。