如何更正数组索引,以便选择正确的值

时间:2018-08-30 04:20:16

标签: java arrays for-loop

我必须输入一个确定数组大小的数字,然后添加的以下数字是要考虑的实际值,然后取最后两个整数并将它们用作我找到的数组的索引。我想相乘的特定数字。

例如,我将输入9 3 7 10 18 70 6 4 3 5,其中9表示我将跟随9个整数,而3和5是我想要的值的索引。那是10和70,所以我的结果应该是700。

扫描仪,X和Y在其他位置声明。

int intNumber = in.nextInt();
array = new int[intNumber];
for (int a = 0; a < intNumber; a++) {
      array[a] = in.nextInt();
      x = array[array[array.length-1]];
      y = array[array[array.length-2]];
} 
System.out.println(x * y);

与其查看索引3和5并使用这些值,不如查找索引4和6并使用它们。我相信这是因为我的数组确实从3到9开头,但是如何从数组的末尾获得正确的索引又如何解决呢?这三个应该在索引1处,并且实际上是在0处,这偏移了我所有的值。我无法将9添加到数组中,因为我需要将其分开才能知道它将容纳多少个整数,但是我真的不知道如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

代码按照预期的方式工作。 如果要从索引1开始数组,请将变量a更改为1,并同时将数组的大小增加1。

int intNumber = in.nextInt();
array = new int[intNumber+1];
for (int a = 1; a <=intNumber; a++) {
  array[a] = in.nextInt();

} 
 x = array[array[array.length-1]];
 y = array[array[array.length-2]];
System.out.println(x * y);

答案 1 :(得分:0)

对不起,您的问题有点令人困惑,但是可以用Java帮助您的事情是将数组索引为0。因此,如果我手动构建您的数组,它将看起来像这样:

array[0] = 3;
array[1] = 7;
array[2] = 10;
array[3] = 18;
array[4] = 70;
array[5] = 6;
array[6] = 4;
array[7] = 3;
array[8] = 5;

如果我了解您的问题,那么我认为您的答案是要做的

x = array[array[array.length-1] - 1];
y = array[array[array.length-2] - 1];

希望这会有所帮助。