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

  • 5
  • Недоступна
1. В методе initializeArray(): 1.1. Создайте массив на 20 чисел 1.2. Считайте с консоли 20 чисел и заполните ими массив 2. Метод max(int[] array) должен находить максимальное число из элементов массива
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (235)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Alex Shepelev 9 уровень, Одесса
8 октября, 08:17
при инициализации переменной int max = 0; выдавало такое "Убедись, что метод max работает корректно с отрицательными числами", a при int max = array[0] и соответственно for (int k = 1; k < array.length; k++), всё прошло, xa-xa-xa
Николай 8 уровень, Гомель
14 октября, 19:28
все верно, в первом случае может случиться так, что в массиве будут только отрицательные числа, а твой max уже больше любого из них... в результате будет не максимальное значение а 0. Второй вариант прошел т.к. ты взял для инициализации значение из массива. А я таких случаях для поиска максимального инициализирую: int max = Integer.MIN_VALUE; для минимального: int min = Integer.MAX_VALUE;
Максимченко Валентина 9 уровень, Москва
27 сентября, 19:40
честно, не понимаю, почему задача находит максимальное значение, но при проверке просит убедиться в корректности с работой с отрицательными числами, хотя при этом минимальное значение также корректно ищет. подскажите, пожалуйста! int [] arr = new int [20]; int max = arr [0]; for (int num : array) { if (num > max) { max = num; } } return max; }
Regina Kazan Start-up Founder / Automa в Jivys
25 сентября, 17:52
как я решила это практически с 1 попытки (на самом деле со второй, потому что вместо 20 ячеек, дебажила на 5) 1. в методе инициализирования массива просто вписываем наш любимый буфферед ридер, создаем массив, в цикле фор вводим и парсим строчки, возвращаем массив в методе макс: 2. создаем инт макс = 0 3. я сделала скорее всего по-тупому, но, это всего лишь мое решение, сделайте элегантнее. вот как сделала я: мне понадобилось 2 фора 1 фор: и от нуля до 1, если ячейка и+1 больше ячейки и, тогда макс = ячейка и +1, иначе макс = ячейка и. все закрыли фор 2 фор: (тут он сокращенный) мы пишем что и опять от нуля, до длины массива, ++ если макс меньше ячейки и - то тогда макс = ячейка и. без иначе. и тут нам Идея говорит - упрости этот фор, мы ей подчиняемся и у нас получается фор (j : array) дальше тоже самое после второго фор возвращаем макс можете сделать ран и проверить на например 5 ячейках, только потом не забудьте поменять их на 20))) ставьте лайк, если вам понравилось!
Виктор 9 уровень, Санкт-Петербург Expert
22 сентября, 16:23
Суровая задача для свеженького ученика, который только взял 7 уровень и вскользь почитал про массивы. JavaRush в своём репертуаре : ) 1. В методе инициализации создаём массив нужного размера и БуфферРидер. 2. Заводим цикл for, который проходится по всей длине свежесозданного массива и в каждую ячейку записывает число с клавиатуры. 3. Подсмотреть примеры для вышеописанного можно из предыдущей лекции. 4. Не забываем парсить строки в целые числа: array[i] = Integer.parseInt(reader.readLine()); 5. Возвращаем проинициализированный массив с набранными числами. 6. В методе макс находим максимальное число также использовав пример из предыдущей лекции (нахождение минимального числа можно использовать для нахождения максимального с минимальным правками). 7. Заводим в методе переменную макс, которая равна 0 индексу массива. 8. Проходимся в цикле for по всей длине массива и каждую ячейку сравниваем с переменной макс, если больше, то записываем текущий индекс в переменную макс и так каждую итерацию цикла. 9. Возвращаем максимальное число в массиве. 10. Всё получится! -- Канал в телеге про Java и Android, в котором есть книги для скачивания, статьи, видеоуроки, чат для обмена знаниями и моральной поддержки : ) Давайте учиться вместе: @LetsCodeIt p. s. Мой личный телеграм канал вкатывальщика в прогерство: @SefoNotasi
Артур 9 уровень, Гродно
20 сентября, 19:04
Самая неоднозначная для меня задача. Почему-то не получалось проинициализировать переменную
array = new int[20]
в методе initializeArray() Помогло только повторное объявление через
int[] array = new int[20]
Валидатор ругался на то, что переменная не объявлена.
Максим Марченко 9 уровень, Владивосток
5 октября, 00:43
array - локальная переменная метода main. Метод initializeArray ее просто-напросто не видит, она находится вне поля его зрения. Ты просто создал новую локальную переменную (и правильно сделал) для метода initializeArray и все получилось
Евгений Ашуркевич 8 уровень, Молодечно
12 сентября, 20:52
Возник вопрос, почему не могу в этой задаче применить конструкцию Arrays.sort(array, Collections.reverseOrder()); ? матюкается, что массив не обнаружен. Хотя OptionalInt max = Arrays.stream(array).max(); воспринимает нормально.
Даниил 10 уровень, Новороссийск
15 августа, 10:38
Вот шикарная статья для понимания и решения данной задачи: https://javahelp.online/osnovy/massivy - абзац "Нахождение минимального и максимального значения в массивах". И не забудьте поменять значение в return
Pavel Lisin 17 уровень, Нур-Султан
16 августа, 14:38
Даниил, спасибо тебе.
Pasha Redkov 13 уровень, Минск
13 августа, 14:06
Ребята, кому интересно, есть такая необычная конструкция цикла for, которая называется foreach. Она классно работает с массивами, и код выглядит элегантнее, сейчас покажу на примере:
int max=array[0];
        for( int x : array)
            if (x>max) max=x;
        return max;
Этот код фактически идентичен следующему:
int max=array[0];
        for (int i=0; i<array.length; i++)
            if (array[i]>max) max=array[i];
        return max;
Во втором случае, я думаю вы и так знаете как это работает, поэтому я расскажу про первый. Тут массив перебирается от начала до конца, и значение каждой переменной присваивается в переменную x, и затем она сравнивается с max. То есть в первый проход цикла x=array[0], во второй x=array[1], в третий x=array[2], и так далее, пока x не станет равно array[array.length]. Очень удобная и простая структурка, пользуйтесь на здоровье
Александр 10 уровень, Санкт-Петербург
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
это я вижу. а подробнее...
Rono 22 уровень, Санкт-Петербург
17 июля, 09:37
Ну, вот Вам надо написать метод. В общем случае это выглядит как-то так: [модификаторы] тип_возвращаемого_значения название_метода ([параметры]){ // тело метода } В нашем случае: - модификатор "public" (публичный, общедоступный класс или член класса, поля и методы, объявленные с модификатором public, видны другим классам из текущего пакета и из внешних пакетов.) - ключевое слово "static" (делает переменную или метод "независимыми" от объекта) - тип возвращаемого значения "int[]", то есть метод (с помощью return) должен нам вернуть массив значений типа int (когда мы свой метод пишем, мы ведь можем "попросить" его возвращать что угодно, например объекты созданных нами классов) - "initializeArray" это название метода, можно было и иначе назвать, но назвали в данном случае именно так - () означает что параметров метод никаких не принимает, опять же, можно было сделать так, чтобы принимал, но мы этого не сделали :D - "throws IOException" потому что метод кидает исключение (я не уверен, что Вы это уже проходили, я просто решаю задачи не читая лекции) - ну и дальше тело метода в фигурных скобках Если остались вопросы, пишите