Как выбрать самый большой индекс наименьшего элемента в одном массиве Java - PullRequest
0 голосов
/ 01 ноября 2019

По сути, мне нужно найти самый большой индекс наименьшего элемента в массиве. Первый вход - это количество элементов. Однако, если тот же номер повторяется позже в массиве, он должен вернуть этот индекс.

Прямо сейчас мой код находит наименьшее число и возвращает индекс этого числа. Как мне обновить индекс?

import java.util.Scanner;

public class smallestelement {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int length = input.nextInt();

        int [] a = new int[length];
        for (int i = 0; i < length; i++){
          a[i] = input.nextInt();
        }

        // minimum 
        int min = a[0]; 
        // counter
        int index = 0; 
        // loop continues as long as i is less than the length of the array
        for (int i = 0; i < a.length; i++){   
              min = a[i];                   
              index = i;
              }
        System.out.println(index);
  }
}

1 Ответ

1 голос
/ 01 ноября 2019

Вам нужно использовать оператор if, чтобы проверить, действительно ли вы смотрите на меньший элемент. Используйте <= для сравнения, так что, когда вы видите одинаково наименьшее значение, используется более поздний индекс.

for (int i = 1; i < a.length; i++) {  
    if (a[i] <= min) {
        min = a[i];                   
        index = i;
    }
}

Кстати, цикл может начинаться с 1 вместо 10, поскольку вы инициализируете min и index перед циклом, используя значение с индексом 0.

...