需要细分两个int数组的总和

时间:2016-02-17 13:46:55

标签: c++

#include <iostream>
using namespace std;

int main()
{
    int a[4] = {7,9,3,4};
    for (int i = 1; i < 4; i++) {
        a[0]+=a[i]+1;
    }
    cout << a[0];
}

我通过编译器运行此代码,答案结果是26.现在我试图了解如何得出答案。

我很确定for循环初始化以计数器变量1开始,条件是i&lt;最初为真的4,循环将继续增加i,输出为1,2,3,直到i = 4,条件为假。

现在我不明白接下来会发生什么。我是否将索引a [0]设为7并将其添加到&#34; a [i] + 1&#34;?如果是这样的话,&#34; a [i] + 1&#34;?

的价值是多少

2 个答案:

答案 0 :(得分:2)

它正在做3个步骤:

a[0] += a[1] + 1
a[0] += a[2] + 1
a[0] += a[3] + 1

即:

a[0] = 7 + 9 + 1 = 17
a[0] = 17 + 3 + 1 = 21
a[0] = 21 + 4 + 1 = 26

它给出了数组加3的总和,因为计算中有三个步骤。

答案 1 :(得分:2)

在这个循环中

for (int i = 1; i < 4; i++) {
a[0]+=a[i]+1;
}

a[0]根据每次迭代中循环变量a[1] + 1的变化,分别累积(包括其中的a[2] + 1a[3] + 1i的值循环。

由于a[0]的初始值为7

int a[4] = {7,9,3,4};

然后你会有

7 + ( 9 + 1 ) = 17
17 + ( 3 + 1 ) = 21
21 + ( 4 + 1 ) = 26