Массивный максимум

  • 5
  • Недоступна
На сегодняшнем соревновании приз за лучший результат получает Кентербери! Он автоматизировал 25 процессов, все его 19 сокурсников оказались менее быстры. Давайте напишем программу, которая помогла бы определять победителя таких соревнований: составляем массив на 20 элементов, заполняем его числами и находим максимальное из них.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (223)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Александр8 уровень, Санкт-Петербург
27 июля, 10:36
В условии написано: 1.2. Считайте с консоли 20 чисел и заполните ими массив Всегда до этого писали с клавиатуры, а тут решили написать с консоли. Лично меня это сильно сбило и тупил над этим какое то время думая, что нужно просто заполнить массив автозаполнением...
Илья8 уровень, Одинцово
1 июля, 09:01
господа, объясните пожалуйста, что это такое:
public static int[] initializeArray() throws IOException {
понятно, что это массив из целочисленных значений, но почему после объявления типа значений следует:
initializeArray()
Сергей8 уровень, Москва
2 июля, 14:27
потому, что это название метода
Илья8 уровень, Одинцово
9 июля, 17:30
это я вижу. а подробнее...
Rono22 уровень, Санкт-Петербург
17 июля, 09:37
Ну, вот Вам надо написать метод. В общем случае это выглядит как-то так: [модификаторы] тип_возвращаемого_значения название_метода ([параметры]){ // тело метода } В нашем случае: - модификатор "public" (публичный, общедоступный класс или член класса, поля и методы, объявленные с модификатором public, видны другим классам из текущего пакета и из внешних пакетов.) - ключевое слово "static" (делает переменную или метод "независимыми" от объекта) - тип возвращаемого значения "int[]", то есть метод (с помощью return) должен нам вернуть массив значений типа int (когда мы свой метод пишем, мы ведь можем "попросить" его возвращать что угодно, например объекты созданных нами классов) - "initializeArray" это название метода, можно было и иначе назвать, но назвали в данном случае именно так - () означает что параметров метод никаких не принимает, опять же, можно было сделать так, чтобы принимал, но мы этого не сделали :D - "throws IOException" потому что метод кидает исключение (я не уверен, что Вы это уже проходили, я просто решаю задачи не читая лекции) - ну и дальше тело метода в фигурных скобках Если остались вопросы, пишите
15 июня, 19:08
Без мам, пап и циклов:
Arrays.sort(array);
       return array[array.length - 1];
Дмитрий22 уровень, Киев
17 июня, 09:45
Хотел бы уточнить [array.length - 1], почему мы отнимаем 1 от длины массива?
18 июня, 15:42
Смотри, длина массива начинается с 1 и заканчивается 20; А индексация начинается с 0 и соответственно заканчивается на 19. Соответственно, чтобы получить элемент из последнего индекса надо указать не порядковый номер элемента в массиве, а номер индекса этого элемента. Первый элемент массива имеет 0 индекс, второй элемент 1 индекс, 20 элемент 19 индекс. Мы можем это сделать явно:
return array[19];
Или не явно:
return array[array.length - 1];
И то и то решение корректно относительно статических массивов, чья длина не меняется:
new int[20];
Потому что при сортировке самое большое значение будет на последнем индексе, который нам известен. Однако, если мы имеем дело с динамическим массивом он же "список" :
ArrayList<Integer> list = new ArrayList<>();
То мы не знаем какая у него будет длина, соответственно не знаем и его явный максимальный индекс. И поэтому, после сортировки:
Collections.sort(list);
Мы сможем только неявно его определить, в случае из моего примера будет так:
return list.get(list.size - 1);
Mikhail10 уровень, Ульяновск
21 июня, 06:44
Я бы советовал еще раз прочитать третью лекцию 7ого уровня: https://javarush.ru/quests/lectures/questsyntax.level07.lecture03 Там решение есть. Хотя Ваше решение тоже очень хорошее, мне понравилось, но требует дополнительных заний
Amiran Raskovalov10 уровень
15 июня, 18:13
Решил просто через for, главное внимательно смотрите что пишете и все будет ок)😅
oretinio7 уровень, Москва
15 июня, 15:09
Почему for each - не работает. Пишет выходит за границы массива. А если по простому for, все ок? Помогите понять...
Edem7 уровень, Санкт-Петербург
14 июня, 09:48
всё же лучше пропускать такие задачи и потом решать их осознанно, это будет полезнее ,чем решить непонятно как)
илья планк8 уровень, тюмень
29 мая, 10:54
в методе initializeArray() обратите внимание на return ,я 10 минут искал что же не работает,если всё вроде правильно...
Дмитрий Шергин11 уровень, Москва
24 мая, 16:43
Обратите внимание на строчки с return!
Максим23 уровень, Москва
22 мая, 13:10
У меня получилось через
Math.max (max, array[переменная цикла]);} в методе max(int[] array)
Валидатор всё принял.
Александр7 уровень
21 мая, 21:26
пожалуй поду гуглить про массивы. чет я не совсем понял из лекции