循环和数组混淆:计数器变量?

时间:2014-03-20 03:17:07

标签: c++

以下循环完成后的总值是多少?

int a[ ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

一个。

int total = 0;
for (int i = 0; i < 10; i++) { total = total + a[i];}

int total = 0;
for (int i = 0; i < 10; i=i+2) { total = total + a[i];}

℃。

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

d。

int total = 0;
for (int i = 2; i <= 10; i++) { total = total + a[i];}

int total = 0;
for (int i = 0; i < 10; i=2 * i) { total = total + a[i];}

F。

int total = 0;
for (int i = 9; i >= 0; i--) { total = total + a[i];}

克。

int total = 0;
for (int i = 9; i >= 0; i=i - 2) { total = total + a[i];}

小时。

int total = 0;
for (int i = 0; i < 10; i++) { total = a[i] – total;}

寻找一个解释,你如何得到其中一个。我需要了解它并为自己做。

当我加入程序时,我得到了45,但是为什么。我该如何手动添加? 是一个。 1+2+3+4+5+6+7+8+9?我的意思是它确实等于45但是对于b。我不明白i=i+2的意思!我认为这意味着循环完成然后i=2(是i=0)并且第三次它将是i=4等等,当然它会一直持续到{{1因为再添加2个将是10并且循环将在该点退出。

请有人关心解释。我期待学习,而不仅仅是得到答案。我不明白他们想要什么。

2 个答案:

答案 0 :(得分:1)

让我们从第一个开始,我会让你自己尝试其他人。

int a[ ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

这是你的主阵列。您可以将其视为包含10个插槽的列表。 在插槽0中,存储1。在插槽1中,存储2。在时隙10中,存储0。 重要的是要记住,数组以0开头,而不是1。

如果你想要数组插槽5中的内容,你可以写:

a[5];

例如:

int sum = a[5];

现在sum等于数组插槽5中的内容。 现在,如果你写:

int sum = a[5] + a[2];

这将导致总和等于9。

这样构建的for循环:

for(int i = 0; i < 10; i++)

首先将i初始化为0.

int i = 0;

然后在它的括号内循环,直到

i < 10;

不是真的。

i++

每次循环迭代时,只需添加1即可。

所以,回到第一个案例。

int a[ ] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
int total = 0;
for (int i = 0; i < 10; i++)
{ 
    total = total + a[i];
}

在第一次迭代中,i = 0。

total = total + a[0];

哪个是1.在第二次迭代中,i = 1。

total = total + a[1];

总数已经是1.所以它是1 +(数组的第二个插槽中的内容),即2。 1 + 2 = 3。

total = total + a[2];

总数已经是3.所以它是3 +(数组的第三个插槽中的内容),即3。 3 + 3 = 6。

重要的是要记住数组以0开头。

我希望你自己可以做其余的事,如果你不能,我可以帮助你!

答案 1 :(得分:0)

你有一个循环,for(int i = 0; i&lt; 10; i ++)

这意味着我将从0开始并一直到9 ...这是我&lt; 10(不到10)

在循环内你要添加... total = total + a [i]

你要添加的是数组中的值... int a [] = {1,2,3,4,5,6,7,8,9,0};

所以。你要添加所有这些...包括数组中的最后一个值,0。

a [0] = 1 a [1] = 2 等

在第二个例子中你有(int i = 0; i&lt; 10; i = i + 2)

这意味着循环值i将从0开始,然后变为2,4,6等等,因此您将添加[0],[2],[4]等一直到a [8]

在更复杂的示例中,您的循环具有不同的起始值...

for(int i = 2; i&lt; = 10; i ++)...这将从2开始而不是0 ......并且还将包含10,因为你有一个“小于或等于”而不是只是一个不到。

在其他循环中你有i --...这意味着你的值会减少1而不是在循环中增加1。

希望这足以让你前进?