Java: ошибка при сортировке массива со встроенной функцией - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь отсортировать массив с array.sort(arr), но есть ошибка, которую я не понимаю. Я попытался переименовать мои массивы в разные скобки в разных местах

public static int HW2K ()
    {     
      int [] arr = {50,40,60,20,10};
      int i = arr.length;
      int secondlargest = arr[i-1]; 

      Arrays.sort(arr);
      return secondlargest;  

    }

должно получиться второе по величине число

Ответы [ 3 ]

0 голосов
/ 07 ноября 2019

Ниже должно работать, как уже упоминалось в комментариях, вы должны сначала отсортировать массив, а затем выбрать нужный элемент. Также обратите внимание, что индекс массива основан на нуле, поэтому для 2-го по величине элемента вам потребуется arr[i-2]

public static int HW2K ()
{     
      int[] arr = {50,40,60,20,10};
      Arrays.sort(arr);
      int i = arr.length;
      int secondlargest = arr[i-2];     
      return secondlargest;  
}
0 голосов
/ 07 ноября 2019

Если вы хотите получить второй по величине элемент в вашем массиве, вы должны определить элемент с индексом [length - 2] после сортировки массива, а не до него.

public static int HW2K()
{
    int [] arr = {50,40,60,20,10};
    int i = arr.length;
    //int secondlargest = arr[i-1];

    Arrays.sort(arr);

    int secondlargest = arr[i-2];

    return secondlargest;
}
0 голосов
/ 07 ноября 2019

Вы не импортировали java.util.Arrays;

import java.util.Arrays;
public class SecondLargest{
  public static void main(String[] args) {
  HW2K();
}
    public static int HW2K() {
        int[] arr = { 50, 40, 60, 20, 10 };
        int i = arr.length; 
        Arrays.sort(arr);
        int secondlargest = arr[i - 2];
        System.out.println(secondlargest);
        return secondlargest;

        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...