Доброго времени суток, товарищи! Прошу направить в нужном направлении?
Смотрел, что многие решали эту задачу очень разными методами. Хотелось бы решить её через if else и тернарный оператор.
Без массивов и пузырьковых методов.
Может кто-то подсказать, какое условие я не учёл по переменной mid(среднее) число?
Если убрать if (c >= min && c <= max) и оставить там только:
else{
mid = c;
}
То проверка проходит по первым трём пунктам, кроме последнего(четвёртого). Но эту вариацию я проверял, она при вводе одинаковых цифр отрабатывает неверно.
package com.javarush.task.task04.task0420;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Сортировка трех чисел
*/
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
int b = Integer.parseInt(reader.readLine());
int c = Integer.parseInt(reader.readLine());
int max = a >= b ? a : b;
max = max >= c ? max : c;
int min = a <= b ? a : b;
min = min <= c ? min : c;
int mid;
if (a >= min && a <= max) {
mid = a;
} else if (b >= min && b <= max) {
mid = b;
} else if (c >= min && c <= max){
mid = c;
}
System.out.println(max + " " + mid + " " + min);
}
}