查找数组中最小元素索引的 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;
问题是当给定一个整数数组时,我应该打印出存储最小值的索引。如果数组中的多个条目都存储最小值,我应该打印出最小索引。
这是代码(在 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;