Сортировка трех чисел

  • 8
  • Недоступна
На планете Линейный Хаос живут изоморфы. Говорят, именно они изобрели методы сортировки и у них в голове все чрезвычайно упорядочено. Визы на их планету они выдают только тем, кто знает не менее 7 методов сортировки. Сделаем первый шаг к Линейному Хаосу: упорядочим три введенные с клавиатуры числа по убыванию, а затем выведем их на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (505)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
OlgaK 5 уровень, Киев
24 февраля, 14:28
Сначала пыталась сделать через Array, потом через max/min. Однако почитав комментарии поняла, что не стоит бежать впереди паровоза. Сделала через if else.
Vladas 4 уровень
5 февраля, 21:37
Чтобы решить задачу самому никуда не подсматривать (я думаю, что на этих уровнях уже у многих такие проблемы/опасения) нужно просто представить какие возможные варианты бывают. Объясняю: Числа a, b, c 1 случай: a >= b & a >= c & c <= b 2 случай: a >= c & a >= b & b <= c 3 случай: b >= a & b >= c & c <= a 4 случай: b >= c & b >= a & a <= c 5 случай: c >= b & c >= a & a <= b 6 случай: c >= a & c >= b & b <= a Как будет выглядеть вывод при таких условиях: 1 случай: a b c 2 случай: a c b 3 случай: b a c 4 случай: b c a 5 случай: c b a 6 случай: c a b Не надо никаких массивов и прочего, просто немного подумать, логику поискать. Всем удачи!
Дмитрий 12 уровень, Москва
5 февраля, 07:37
Сперва находим максимум и минимум. Затем складываем все 3 числа и вычитаем max и min
Bombus 10 уровень, Москва
25 января, 14:07
Я так сделал: int max = Math.max(a,Math.max(b,c)); int min = Math.min(a,Math.min(b,c)); int mid = a + b + c - (max + min); System.out.println(max + " " + mid + " " + min);
Oleksandr Havryush 8 уровень
1 февраля, 17:19
Я тоже. И это просто класс 😀
Павел Ковзун 5 уровень, Витебск
15 февраля, 17:23
А на четвёртом уровне Вы бы так написали? А я то на четвертом и про мах и min мы ещё не проходили.
Bombus 10 уровень, Москва
16 февраля, 07:14
Нет конечно! Я не решаю все задачи уровня, чтобы потом вернуться как к теме для повтора, так и решать их альтернативными способами. Мне так больше нравится. Просто некоторые задачи по теме решаешь по аналогии с предыдущими решенными, иногда до конца не поняв суть. Вернувшись к ним позже, есть шансы постичь эту суть, т.к. уже забываешь как решал, а если не понял суть, то и не вспомнишь )) вот и второй заход в тему гарантирован ))
Эдуард Хазиев 8 уровень
14 января, 13:40
Смотрю некоторые нагородили через if-else, у меня получилось достаточно компактно
if (n1 >= n2 & n1 >= n3 & n3 <= n2) {
    System.out.println(n1 + " " + n2 + " " + n3);
} else if (n2 >= n1 & n2 >= n3 & n3 <= n1) {
    System.out.println(n2 + " " + n1 + " " + n3);
} else if (n3 >= n2 & n3 >= n1 & n1 <= n2) {
    System.out.println(n3 + " " + n2 + " " + n1);
} else if (n3 >= n2 & n3 >= n1 & n2 <= n1) {
    System.out.println(n3 + " " + n1 + " " + n2);
}
DDAlex 5 уровень, Алматы
25 января, 14:43
Дружище, проверил я твой код, ты только для четырёх вариантов прописал, а их всего 6 возможно комбинаций, необходим ещё один else if и один else завершающий, тогда всё будет считать. У тебя прописано для таких комбинаций: 1 2 3 2 1 3 2 3 1 3 2 1 А для этих двух у тебя не работает прога: 1 3 2 3 1 2
Борис Карасик 14 уровень, Минск
5 февраля, 23:33
9 3 5 не работает. Не полный алгоритм ИМХО
Эдуард Хазиев 8 уровень
7 февраля, 14:34
Ввожу: 9 3 5 Выводит: 9 5 3 Что не работает?
Борис Карасик 14 уровень, Минск
11 февраля, 07:31
Сразу не заметил, но за 25 января, 17:43 был дан полный ответ
Алёнка1 6 уровень
12 января, 19:51
Решила так, но строчка с mid однозначно пугала :( max = Math.max(a, Math.max(b,c)); min = Math.min(a, Math.min(b, c)); mid = (a>b?a<c?a:b>c?b:c:b<c?b:a<c?c:a); System.out.println(max + " " + mid + " " + min); Может в таком варианте более читабельным код будет mid = a + b + c - (min + max);
Alexander 5 уровень, Киев
2 января, 21:59
Да, уж. на первый взгляд все просто, но над логикой пришлось поднапрячся. Все решается через if, задача на развитие логики и формул, а не math.max
Anonymous #2412943 Работает в Вымпелком
27 декабря 2020, 11:22
Погуглить получилось быстрее, чем расписывать алгоритм. Сортировка + массив (только не забудьте импорт). Валидация пройдена. http://study-java.ru/uroki-java/urok-11-sortirovka-massiva/
alexxx344 13 уровень, Москва
30 декабря 2020, 13:06
Хорош👍 Можно еще сразу 10ый прочитать
erg 5 уровень
22 декабря 2020, 12:21
Использовать обратную сортировку Arrays.sort(<имя заполненого массива>, Collections.reverseOrder()); Статья http://study-java.ru/uroki-java/urok-11-sortirovka-massiva/ Примеры различных методов сортировки с народными плясками - очень занятно.
Anatoly 8 уровень, Москва
23 декабря 2020, 14:48
Подскажи, а задача в таком случае пройдет тест.? в условии стоит что числа должны разделены пробелом а массив выдаётся через запятую. Может что то путаю.
erg 5 уровень
24 декабря 2020, 12:31
for (byte i=0;i<a.length;i++) { System.out.print(<имя заполненого массива>[i]+" "); //Вот тебе и число из ячейки массива и добавленный пробел;
Anatoly 8 уровень, Москва
24 декабря 2020, 20:28
Спасибо
Super Style 7 уровень, Москва
10 декабря 2020, 19:46
int max.. int min... int mid...