java - 代码在应该打印最大值和最小值时打印出数组的最大下标

标签 java arrays

我正在尝试打印数组上的最大和最小值,以及它们各自的下标。我遇到了一个问题,我的代码虽然打印了数组的最高值和最低值,但返回了最大和最小数组的最大下标(无论值如何)。问题出在下面的 for 循环中。

int max = arrayOfNumbers[0];
        int min = arrayOfNumbers[0];
        int indexMax = 0;
        int indexMin = 0;
for (int i = 0; i < arrayOfNumbers.length; i++) {
    if (max < arrayOfNumbers[i])
        max = arrayOfNumbers[i];
        indexMax = i;
}
for (int i = 0; i < arrayOfNumbers.length; i++) {
    if (min > arrayOfNumbers[i])
        min = arrayOfNumbers[i];
        indexMin = i;

最佳答案

这应该有效:

int max = arrayOfNumbers[0];
int min = arrayOfNumbers[0];
int indexMax = 0;
int indexMin = 0;
for (int i = 0; i < arrayOfNumbers.length; i++) {
    if (max < arrayOfNumbers[i]) {
        max = arrayOfNumbers[i];
        indexMax = i;
    }
}
for (int i = 0; i < arrayOfNumbers.length; i++) {
    if (min > arrayOfNumbers[i]) {
        min = arrayOfNumbers[i];
        indexMin = i;
    }
}

您忘记将 if 后面的两行放入大括号中。每次执行循环内的代码时,当前索引都已写入 indexMaxindexMin 中,这就是为什么循环结束后,它们包含“最大下标” .

关于java - 代码在应该打印最大值和最小值时打印出数组的最大下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8439702/

相关文章:

java - 我应该如何使用 guava TypeToken 反射性地实例化参数化类型?

java - 遍历具有重复值的 Map 并识别共享这些值的键

JavaScript:根据条件创建二维对象数组

ios - sprintf上的SIGABRT

java - 更新到 api 19 后 Google Maps V2 崩溃

java - 如何与 PDFBox 协调这些文本位置和行位置?

java - 从字节数组中读取 4 位 block

arrays - 读取文件并在 C 中打印内容

javascript - 'arguments' 关键字是指最外层还是最内层函数参数?

c - 数组插入和删除的运行时间(Big-O)