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

  • 8
  • Недоступна
На планете Линейный Хаос живут изоморфы. Говорят, именно они изобрели методы сортировки и у них в голове все чрезвычайно упорядочено. Визы на их планету они выдают только тем, кто знает не менее 7 методов сортировки. Сделаем первый шаг к Линейному Хаосу: упорядочим три введенные с клавиатуры числа по убыванию, а затем выведем их на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (543)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Оксана
Уровень 4, Lobnya, Россия
позавчера, 10:58
можно обойтись и без готового решения по сортировке класса Math. как понимаю, на первых задачах так и надо было сделать. Мне помог ввод дополнительной переменной, которой я присвоила значение первого или второго числа, в зависмости от того, какое больше. Потом эту доп переменную использовала при сравнении с 3 введенным числом. Вроде как это помогло, чтобы if -ов было меньше. и работает на разных вариантов тестовых данных
int tmp;
tmp = (first > second) ? first : second;
Vladislav Tsar
Уровень 22, Москва, Россия
22 апреля, 17:37
/* Комментарий удален */
Игорь
Уровень 25, Харьков, Украина
21 мая, 11:34
вы читали правила Джавы раш что нельзя выкладывать готовый результат в комментариях? идите умничайте в задачах вашего 14 уровня
Ruslan Gabzalilov
Уровень 6, Россия
18 марта, 09:12
В условие добавить бы пункт "Если числа равны". Было бы меньше ошибок.
10 марта, 12:45
Вводим переменную max (через Math.max считаем максимум), аналогично минимум, затем среднее (все числа сложить и вычесть min и max), далее просто выводим их. С тремя числами сработает, но если добавить ещё числа - нужно что-то другое (именно сортировка). Пока мозги и так подкипают, но понятно, что нужно подучить.
Александр
Уровень 8, Москва, Россия
11 января, 20:09
Можно сделать с помощью Math в одну строку, вычисляем минимальное, среднее и максимальное: int a = Integer.parseInt(reader.readLine()); int b = Integer.parseInt(reader.readLine()); int c = Integer.parseInt(reader.readLine()); System.out.println(Math.max(a,Math.max(c,b))+ " " + (a+b+c-Math.max(a,Math.max(c,b))-Math.min(a,Math.min(c,b))) + " " + Math.min(a,Math.min(c,b)));
Степан
Уровень 5, Санкт-Петербург, Россия
22 января, 05:40
У меня очень похожее решение вышло спустя 2 часа размышлений)
Juli
Уровень 9, Киев, Украина
17 ноября 2021, 12:31
Ха, с первой попытки, но перед этим листов 5 переписанных значение А4 😂😂😂. Решила не изобретать велосипед и отточить навыки if/else, правильно ли или надо было поломать мозг?
Tony
Уровень 5, Киев
18 сентября 2021, 16:48
Я решил воспользоваться Гуглом и поискал сортировку массивов, собственно вот, что получилось:
Обязательно не забудьте импортировать библиотеку, для работы с массивами - import java.util.*;

... Здесь обычное считывание с клавиатуры...

        String s = ""; // Создаем пустую строку
        Integer[] nums = new Integer[] { a, b, c}; // Создаем массив, в данном случае важно НЕ примитив (int). С примитивом не работает reverseOrder(), на сколько я понял :)
        Arrays.sort(nums,Collections.reverseOrder()); // Сортируем массив, второй параметр - обратный сортинг от большего к меньшему.
        for (int i : nums){   //foreach цикл для перебора массива
            s += i + " ";  // На каждой итерации производим конкатенацию строки.
        }
        System.out.println(s);   // Выводим строку в консоль.
Екатерина Лисняк
Уровень 4, Санкт-Петербург, Россия
13 ноября 2021, 20:27
какой вы хитренький!)) элегантно!
Arsik Osipov
Уровень 4, Москва, Россия
7 июня, 20:06
У меня решение получилось таким
Какой-то код...

        ArrayList<Integer> list = new ArrayList<Integer>();
        Collections.addAll(list, a ,b, c);
        Collections.sort(list);
        Collections.reverse(list);
        for (int i : list) {
            s += i + " ";
        }
            System.out.println(s);
    }
}
Максим
Уровень 5, Симферополь, Россия
11 июня, 12:47
Это всё понятно. А вы через if попробуйте решить. Просто, ради интереса. Если вы этого не делали. то кипение мозгов вам обеспечено!🙂
Bogdan Lopatenko
Уровень 19, Минск
28 июня 2021, 10:54
Задание выполнено правильно (числа выводятся в порядке убывания), но последнее требование не засчитывается
Oleksii
Уровень 13, Україна
19 сентября 2021, 17:52
если делали через if, то оьязательно дальше надо использовать else
Виталий Шепель
Уровень 11, Киев
17 июня 2021, 04:06
Жду возражений. Считаю что это самый короткий код с использованием if : if (a>b & b>c) System.out.println(a + " " + b + " " + c); if (a>c & c>b) System.out.println(a + " " + c + " " + b); if (b>a & a>c) System.out.println(b + " " + a + " " + c); if (b>c & c>a) System.out.println(b + " " + c + " " + a); if (c>a & a>b) System.out.println(c + " " + a + " " + b); if (c>b & b>a) System.out.println(c + " " + b + " " + a);
Валентин
Уровень 18
20 августа 2021, 18:20
а если ввести 2 2 10, не фурычит.
Mihail Java Developer
24 ноября 2021, 21:01
а если так? else if (a>=c & c>=b) System.out.println(a + " " + c + " " + b);
reteruvsky
Уровень 12, Львов, Украина
29 ноября 2021, 20:17
А зачем дополнительно ставить знак ровно?
Mihail Java Developer
30 ноября 2021, 20:56
сравниваем (А больше или равно С и С больше или равно В) можно попробовать и без равно, я перестраховался, так как лень было изобретать велосипед...
Viktoria Trofimova
Уровень 7, Москва, Россия
14 апреля 2021, 20:49
Погуглила про сортировку переменных, в итоге получилось такое решение: Scanner x = new Scanner(System.in); int[] array = new int[3]; array[0] = x.nextInt(); array[1] = x.nextInt(); array[2] = x.nextInt(); Arrays.sort(array); System.out.println(array[2] + " " + array[1] + " " + array[0]);
Maksym QA Automation Engineer
29 мая 2021, 09:30
а можно и укоротить: int[] ar = new int[]{sc.nextInt(), sc.nextInt(), sc.nextInt()};
netrunner
Уровень 15, Россия
9 июля 2021, 13:02
Arrays.sort(array); конечно круто и быстро, но как же пузырек ?😰