在 C++ 中将数组中的所有数字相加
adding all numbers inside an Array in c++
我刚开始在大学学习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 是数组所有值的完整总和。
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- 打印数字图案
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 如何检查一个c++字符串中有多少相同的字符/数字
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 将数字打印成文字
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 在将数字随机生成为数组期间从内存输出随机数的数组