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

  • 8
  • Недоступна
На планете Линейный Хаос живут изоморфы. Говорят, именно они изобрели методы сортировки и у них в голове все чрезвычайно упорядочено. Визы на их планету они выдают только тем, кто знает не менее 7 методов сортировки. Сделаем первый шаг к Линейному Хаосу: упорядочим три введенные с клавиатуры числа по убыванию, а затем выведем их на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (525)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Tony
Уровень 5, Киев
undefined, 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);   // Выводим строку в консоль.
Bogdan Lopatenko
Уровень 18, Минск
28 июня, 10:54
Задание выполнено правильно (числа выводятся в порядке убывания), но последнее требование не засчитывается
Oleksii
Уровень 4, Україна
undefined, 17:52
если делали через if, то оьязательно дальше надо использовать else
Виталий Шепель
Уровень 11, Киев
17 июня, 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);
Валентин
Уровень 9
20 августа, 18:20
а если ввести 2 2 10, не фурычит.
Viktoria Trofimova
Уровень 7, Москва, Россия
14 апреля, 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 мая, 09:30
а можно и укоротить: int[] ar = new int[]{sc.nextInt(), sc.nextInt(), sc.nextInt()};
Ikari KuroIv
Уровень 9
9 июля, 13:02
Arrays.sort(array); конечно круто и быстро, но как же пузырек ?😰
SanGali
Уровень 8, Самара, Россия
8 апреля, 15:49
не читал решения, чесслово)) люблю сам) вот мое: int abb = Math.max(a, b); int max = Math.max(abb, c); int amb = Math.min(a, b); int min = Math.min(amb, c); int mid = (a + b + c) - (min + max); да, была заморочка со средним, но пару кружек кофе в голову...
Алексей
Уровень 6, Москва
31 марта, 14:01
BufferedReader reader = new BufferedReader (new InputStreamReader(System.in)); String as = reader.readLine(); String bs = reader.readLine(); String cs = reader.readLine(); int a = Integer.parseInt(as); int b = Integer.parseInt(bs); int c = Integer.parseInt(cs); if (a>=b && b>=c){ System.out.println(a+ " " + b + " " +c); } else if (a>=c && c>=b){ System.out.println(a+ " " + c + " " +b); } else if (c>=a && a>=b){ System.out.println(c+ " " + a + " " +b); } else if (c>=b && b>=a){ System.out.println(c+ " " + b + " " +a); } else if (b>=a && a>=c){ System.out.println(b+ " " + a + " " +c); } else if (b>=c && c>=a){ System.out.println(b+ " " + c + " " +a); } Валидацию прошел, вопрос этого ли от меня хотели ?
Константин Чернышов
Уровень 7, Владивосток, Россия
1 апреля, 01:05
Да все верно. Все возможные 6 комбинаций в Вашей программе есть.
Leonid Kulikov
Уровень 9
13 августа, 11:06
т.к. в if только одна операция , то фигурные скобки не обязательны(мусор)
Сергей Коровин
Уровень 7
9 марта, 16:14
все это конечно замечательно array и Math.max, но решил не компактно через if и if else , расписал все возмодные комбинации , не с первого раза , но все же дошел до цели public class Solution { public static void main(String[] args) throws Exception { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); Scanner scanner1 = new Scanner(System.in); int b = scanner1.nextInt(); Scanner scanner2 = new Scanner(System.in); int c = scanner2.nextInt(); if (a >= b & b >= c){ System.out.println(a + " " + b + " " + c); } и так далее
Timur
Уровень 19, Минск, Беларусь
17 марта, 14:20
не нужно каждый раз создавать новый сканер достаточно один раз создать его Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt();
Сергей Коровин
Уровень 7
7 апреля, 11:00
спасибо огромное добрый человек
Дмитрий
Уровень 7, Киев
3 марта, 16:09
Компактно и работает но валидацию НЕ проходит(( 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()); if (a>=b && b>=c) System.out.println(a+" "+b+" "+c); else if (b >= c && c >= a) System.out.println(b+" "+c+" "+a); else if (c>=b && b>=a) System.out.println(c+" "+b+" "+a);
vladimir
Уровень 24, Москва
3 марта, 16:20
Попробуйте ввести 3 1 2
Дмитрий
Уровень 7, Киев
3 марта, 20:51
точно...Спасибо!
new Dog("тузік")
Уровень 11, Киев
24 февраля, 14:28
Сначала пыталась сделать через Array, потом через max/min. Однако почитав комментарии поняла, что не стоит бежать впереди паровоза. Сделала через if else.
Vladas
Уровень 7, Германия
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 Не надо никаких массивов и прочего, просто немного подумать, логику поискать. Всем удачи!