-3

所以我正在尝试使用 for 循环来用数字 1-8 填充数组。然后加:

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 麻木 = 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] << " + ";
   }

}
4

3 回答 3

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;
}
于 2013-05-30T22:00:49.627 回答
1

对于初始循环,删除 =:

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

要添加数组的所有元素,然后添加 numb:

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

然后你可以计算出你的 x 变量。

于 2013-05-30T22:04:39.440 回答
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;
于 2013-05-30T22:17:45.953 回答