查找数组中最小元素索引的 Java 代码出错

Error with Java code that finds the index of the minimum element in array

问题是当给定一个整数数组时,我应该打印出存储最小值的索引。如果数组中的多个条目都存储最小值,我应该打印出最小索引。

这是代码(在 Java 中):

class Main {
  public static void main(String[] args) {
    int[] counts = {32, 22, 37, 16, 10, 11};
    int x = counts[0];
    int counter = 0;
    while (counter < counts.length) {
        if (counts[counter] < x) 
            x = counter;
      counter++;
    }

    System.out.println(x);

  }
}

使用此代码,虽然打印的答案应该是 4,但我得到的答案是 2。我不确定我做错了什么,因为我将 x 设置为当前条目时的计数​​器小于存储的最小值。如何修复代码中的错误?

这是一个非常小的错误 - 当您正确存储最小元素的索引时,当您在遍历期间将当前元素与 x 进行比较时,您是将当前元素与当前最小值的索引进行比较,而不是当前最小值本身。要解决此问题,您必须在第 7 行对 if (counts[counter] < counts[x]) 进行非常小的更改,并将第 4 行更改为 int x = 0;