我有这个代码,我正在尝试从中执行手动执行,但我不确定index - 1
是做什么的。我的结果应该是1,5,6,8,9
还是1,3,5,6,8
还是我完全错了?
void main() {
int array[5] = {1,3,4,6,7};
int index;
for (index = 1; index < 5; index++) {
array[index] = array[index - 1] + 2;
}
}
答案 0 :(得分:1)
值:1,3,4,6,7
index的值设置在for循环的每次迭代的顶部
因此,第一次循环时,index
设置为表示值1
。
index-1
会保留值1-1
或0
array[index - 1]
与array[0]
array[0]
包含值1
。 array[index - 1] + 2
与1 + 2
或3
array[index]
我们知道代表array[1]
用于保存3
的值,现在被分配给({} )保持值3
。 数组中的值:1,3,4,6,7
现在,回到循环的顶部..
index
被告知1
增加index
即:2
为1 ,现在代表数字index-1
2-1
会保留值1
或array[index - 1]
。 array[1]
与array[1]
相同,3
包含值array[index - 1]
3 + 2
+ 2,相当于5
或array[index]
array[2]
我们知道它代表元素4
(曾经保存5
的值),现在已分配保持值array index index-1 array[index-1] array[index-1]+2 array[index]
1,3,4,6,7 1 0 1 3 array[1] = 3
1,3,4,6,7 2 1 3 5 array[2] = 5
1,3,5,6,7 3 2 5 7 array[3] = 7
1,3,5,7,7 4 3 7 9 array[4] = 9
1,3,5,7,9 5 (exits for loop since condition fails)
。数组中的值通过循环:1,3,5,6,7
等
1 3 5 7 9
最终结果:f().
此外,您可以使用&#39;在线c编译器&#39;测试代码片段。
以下是JDoodle