我必须用执行以下代码后将存储的值填充数组:
int[] list = {2, 18, 6, -4, 5, 1};
for (int i = 0; i < list.length; i++) {
list[i] = list[i] + (list[i] / list[0]);
}
对于 list[0]
我得到的值是 3,这是正确的。
对于 list[1]
我得到的值是 27,这是错误的。
对于 list[2]
我得到 9,这也是错误的。
有人可以告诉我我做错了什么吗?数组的长度是6,对吧?
最佳答案
list [0] = list[0] + (list[0]/list[0]) = 2 + 2/2 = 3
list [1] = list[1] + (list[1]/list[0]) = 18 + 18/3 = 24
list [2] = list[2] + (list[2]/list[0]) = 6 + 6/3 = 8
list [3] = list[3] + (list[3]/list[0]) = -4 - 4/3 = -5
list [4] = list[4] + (list[4]/list[0]) = 5 + 5/3 = 6
list [5] = list[5] + (list[5]/list[0]) = 1 + 1/3 = 1
您忘记了 list[0]
在第一次迭代中从 2 更改为 3,这会影响所有后续迭代的结果。
关于java - 代码执行后数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48058176/