Страницы

Поиск по вопросам

вторник, 12 марта 2019 г.

Нахождение расстояния между двумя наименьшими элементами массива

Задание такое: "Создать консольное приложение, которое принимало бы на вход ряд чисел и выводило расстояние между двумя наименьшими. Например, дано ряд чисел: "23 45 34 12 45 4 38 56 2 49 100". Наименьшие числа в нем 2 и 4. Расстояние между ними - 3 (имеется ввиду разница между индексами по модулю)"
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); System.out.println("Enter random numbers:"); int size = scan.nextInt(); int[] mas = new int[size];
for (int i = 0; i < size; i++) { mas[i] = scan.nextInt(); }
int indexOfMax = mas[0]; int indexOfMin = mas[0]; for (int i = 0; i < mas.length; i++) { if(mas[i] > indexOfMax) indexOfMax = mas[i];
if(mas[i] то бишь я заполняю массив значениями с консоли. Решила попробовать найти хотя бы минимальное и максимальное значение.. не получилось. максимальное находится через раз, а минимальное постоянно 0.
как найти 2 минимальных значения массива, введенного с консоли? (не сортирую массив)


Ответ

public static void main(String[] args) { int[] mas = {23, 45, 34, 12, 45, 4, 38, 56, 2, 49, 100};
int min1 = Integer.MAX_VALUE; int min2 = Integer.MAX_VALUE; int index1 = 0; int index2 = 0; for (int i = 0; i < mas.length; i++) { if( mas[i] < min1) { min2 = min1; min1 = mas[i]; index2 = index1; index1 = i; } else if (mas[i] < min2) { min2 = mas[i]; index2 = i; } } System.out.println(Math.abs(index1 - index2)); }

Комментариев нет:

Отправить комментарий