Задание такое: "Создать консольное приложение, которое принимало бы на вход ряд чисел и выводило расстояние между двумя наименьшими. Например, дано ряд чисел: "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]
как найти 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));
}
Комментариев нет:
Отправить комментарий