代码执行后数组的值

问题描述 投票:0回答:3

我必须使用在执行以下代码后存储的值填充数组:

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,对吗?

java arrays
3个回答
7
投票
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,这会影响以后所有迭代的结果。


1
投票
  int[] list = {2,18,6,-4,5,1};
        for ( int i = 0; i<list.Length; i++){
            list [i] = list[i] + (list[i]/list[0]);
            Console.WriteLine(list [i]);
        }

输出:3 24 8 -5 6 1

在第一次迭代后列表[0] = 3;你可以在这里查看我的代码:http://rextester.com/TJQTH40178


0
投票

代码没有问题......

只需在完成逻辑执行后打印出值。

public class ArrayTest {

   public static void main(String[] args) {
       int[] list = { 2, 18, 6, -4, 5, 1 };
       for (int i = 0; i < list.length; i++) {
           list[i] = list[i] + (list[i] / list[0]);
       }

       for (int i = 0; i < list.length; i++) {
           System.out.println(list[i]);
       }
   }
}

答案:

3 24 8 -5 6 1

© www.soinside.com 2019 - 2024. All rights reserved.