用于循环和添加

时间:2013-05-30 21:58:29

标签: c++

所以我试图使用for循环用数字1-8填充数组。然后添加:

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + numb = x

然后将其保存到名为x的变量中。我已经填充了数组,但我不知道如何计算数组的摘要+你输入的数字。非常感谢一些帮助。

#include <iostream>

using namespace std;

int main()
{

int array[8];
int numb;
int x; // x = summary of array + numb;

cin >> numb; // insert an number

for (int i = 0; i <= 8; i++)
{
    array[i]=i+1;

}
for (int i = 0; i < 8; i++)
{
    cout << array[i] << " + ";
   }

}

3 个答案:

答案 0 :(得分:3)

将最后一部分更改为:

x = numb;
for (int i = 0; i < 8; i++)
{
   x = x + array[i];
}

cout<<x<<endl;

但实际上,如果你想添加前n个整数,那就有一个公式:

(n*(n+1))/2;

所以你的整个计划将是:

#include <iostream>

using namespace std;

int main()
{
int n = 8;
int numb;
cin >> numb; // insert an number

int x = n*(n+1)/2+numb;
cout<<x<<endl;
}

答案 1 :(得分:1)

对于初始循环,请删除=:

for (int i=0; i<8; i++) { array[i]=i+1; }

添加数组的所有元素,然后添加麻木:

var x=0;
for (int i=0; i<8; i++) { x += array[i]; }
x+=numb;

然后你可以告诉你x变量。

答案 2 :(得分:0)

除非您需要使用for循环和数组(例如,这是作业),否则您可能需要更多地考虑代码:

std::vector<int> array(8);

// fill array:
std::iota(begin(array), end(array), 1);

int numb;    
std::cin >> numb;

int total = std::accumulate(begin(array), end(array), numb);

std::cout << "Result: " << total;