Как найти максимальное и минимальное значение в массиве
Привет, так что я новичок в программировании Java, и я в настоящее время в массиве обучения. Поэтому я пытаюсь найти максимальное и минимальное значение массива, но по какой-то причине я не могу найти минимальное значение, но могу найти максимальное значение.
Я использовал тот же оператор для получения максимального значения, только изменив оператор. Но почему-то выход всегда равен нулю.
Любая помощь будет оценена спасибо!
6 ответов
Этот оператор выполняется в то время, когда array[0] равен нулю.
В данный момент вы не читали никаких значений, поэтому инициализируйте ваши минимальные и максимальные значения с помощью:
Фактически, вам вообще не нужен массив, так как вы не используете его после цикла. Просто присвойте результат сканирования сканеру int переменной, объявленной внутри цикла.
Начальное значение по умолчанию для Integer равно 0. По этой причине при проверке, превышает ли оно входное значение, значение по умолчанию остается тем же
Когда вы выделяете память, используя новый оператор,
Каждый элемент массива инициализируется нулем.
Поэтому, когда вы делаете int min=array[0] , min присваивается значение 0. Затем при сравнении с 1,2,3,4 и 5 min минимально и, следовательно, не изменяется.
Чтобы решить эту проблему, сначала введите все элементы в массиве, используя цикл for, затем инициализируйте min и max в массив [0]
Минимальные и максимальные значения Java в массиве
мой код не дает ошибок, однако он не отображает минимальное и максимальное значения. Код:
нужна ли мне система.из.println (), чтобы отобразить его, или должен работать возврат?
12 ответов
вы вызываете методы, но не используете возвращаемые значения.
вы можете попробовать это тоже, если вы не хотите делать это своим методом.
вот рабочий код, чтобы найти min и max в массиве.Я надеюсь, что вы найдете его полезным:
Imho одним из самых простых решений является: —
вы просто выбрасываете мин / макс значения:
Вы можете сделать что-то вроде
ваш максимальный, минимальный метод прав
но вы не печатаете int для консоли!
а. возможно, лучше изменить местоположение (максимальное, минимальное) методы
теперь (максимум, минимум) методы в roop. это не нужно.. просто нужно один звонок
Я предлагаю изменить этот код
да, вам нужно использовать System.out.println . Но вы получаете минимум и максимум каждый раз, когда они вводят значение и не отслеживают количество элементов, если они ломаются рано.
затем вам нужно будет передать длину в методы, чтобы определить min и max и распечатать. Если вы этого не сделаете, остальные поля будут равны 0 и могут испортить правильные значения min и max.
здесь вы не напечатали значения max и min. Распечатайте значения max и min в методах getMaxVal и getMin val или после вызова. Это результат.
также, Когда вы объявляете массив, он изначально имеет все 0.
Как найти минимальное число в массиве java
24 марта 2014
Мария (admin)
Массив (англ. Array) это объект, хранящий в себе фиксированное количество значений одного типа. Другими словами, массив — это нумерованный набор переменных. Переменная в массиве называется элементом массива, а ее позиция в массиве задается индексом. Например, нам нужно хранить 50 различных имен, согласитесь, неудобно для каждого имени создавать отдельную переменную, поэтому мы будем использовать массив. Нумерация элементов массива начинается с 0, а длинна массива устанавливается в момент его создания и фиксируется.
Для наглядности картинка, взятая мною с The Java Tutorial.

Для того чтобы создать массив нужно его объявить, зарезервировать для него память и инициализировать.
Объявление массива в Java
При создании массива в Java первым делом его нужно объявить. Это можно сделать следующим образом:
Можно также объявить массив так:
Однако, это не приветствуется соглашением по оформлению кода в Java, поскольку скобки обозначают то, что мы имеем дело с массивом и логичнее, когда они находятся рядом с обозначением типа.
Исходя из данного примера, мы объявили 2 массива с именами myFirstArray и mySecondArray. Оба массива будут содержать элементы типа int.
Подобным образом можно объявить массив любого типа:
Тип массива задается следующим образом type[], где type это тип данных содержащихся в нем элементов. Скобки являются специальным обозначением того, что переменные содержатся в массиве. Имя массива может быль любым, однако, оно должно соответствовать правилам именования переменных.
Массивы можно создавать не только из переменных базовых типов, но и из произвольных объектов.
При объявлении массива в языке Java не указывается его размер и не резервируется память для него. Происходит лишь создание ссылки на массив.
Резервация памяти для массива и его инициализация.
Далее, для объявленного myFirstArray, зарезервируем память при помощи ключевого слова new.
В нашем примере мы создали массив из 15 элементов типа int и присвоили его ранее объявленной переменной myFirstArray.
Объявлять имя массива и резервировать для него память также можно на одной строке.
При создании массива с помощью ключевого слова new, все элементы массива автоматически инициализированы нулевыми значениями. Для того, чтобы присвоить элементам массива свои начальные значения, необходимо провести его инициализацию. Инициализацию можно проводить как поэлементно
так и в цикле, с помощью индекса проходя все элементы массива и присваивая им значения.
Как видно из предыдущих примеров, для того, чтобы обратиться к элементу массива, нужно указать его имя и, затем, в квадратных скобках — индекс элемента. Элемент массива с конкретным индексом ведёт себя также, как и переменная.
Рассмотрим создание и инициализацию массива на следующем примере. В нем мы создаем массив, содержащий цифры 0-9 и выводим значения на консоль.
Здесь длина массива определяется числом значений, расположенных между скобками и разделенных запятыми. Такая запись больше подходит для создания небольших массивов
Определение размера массива
Размер массива не всегда очевиден, поэтому для того, чтобы его узнать следует использовать свойство length, которое возвращает длину массива.
Данный код поможет нам узнать, что длина массива myColor равна 3.
Пример: Задано 4 числа, необходимо найти минимальное
Упражнения на тему одномерные массивы в Java:
- Создайте массив, содержащий 10 первых нечетных чисел. Выведете элементы массива на консоль в одну строку, разделяя запятой.
- Дан массив размерности N, найти наименьший элемент массива и вывести на консоль (если наименьших элементов несколько — вывести их все).
- В массиве из задания 2. найти наибольший элемент.
- Поменять наибольший и наименьший элементы массива местами. Пример: дан массив <4, -5, 0, 6, 8>. После замены будет выглядеть <4, 8, 0, 6, -5>.
- Найти среднее арифметическое всех элементов массива.
Категория: Уроки Java
Комментариев к записи: 93
Пример: Задано 4 числа, необходимо найти минимальное
int[] numbers = <-9, 6, 0, -59>;
int min = numbers[0];
for(int i = 0; i numbers[i])
min = numbers[i];
>
Мария, данный пример выводит первое число из массива numbers, а как вывести именно минимальное?
Максим, вам нужно в цикле for добавить условие if и по очереди сравнивать элементы массива с переменной min, если очередной элемент оказывается меньше — присваивать его значение переменной min.
Еще у вас ошибка в цикле for. Смотрите тут, как надо правильно его оформлять http://study-java.ru/uroki-java/java-operatory-tsikla-for-while-do-while-operator-break/#for
http://pastebin.com/XsdALaBq
Первое задание. При попытке запуска на консоль вылазит такое сообщение:
Exception in thread «main» java.lang.ArrayIndexOutOfBoundsException: -1
at pract12.main(pract12.java:8)
Где ошибка?
Как подсказывает java, ошибка у вас в строке 8. А конкретно пишет, что ошибка в том, что индекс выходит за границы массива. Вы при объялении массива указали размер 10, а потом в цикле for пытаетесь этот массив из 10 элементов заполнить 20ю элементами. Даже не 20, а 21м, потому что у вас i начинается от -1… Это тоже самое, что вы бы пытались в ячейку для 10 яиц засунуть 21
Наверное я где то ошибся, поэтому напишу что я хотел получить. При указании размера массива 10, я указал количество элементов массива, тоесть количество элементов которые будут выведены на консоль(так?). При указании i я имел в виду что i не больше 20, но выведены на консоль должно быть только каждое 2е число начиная с 1. Тоесть количество элементов — 10. Плюс, даже после исправления границ массива все равно таже ошибка
«Exception in thread «main» java.lang.ArrayIndexOutOfBoundsException: -1
at pract12.main(pract12.java:7)»
Указав количество элементов, в вашем случае 10, вы указываете не то, количество, которое будет выведено на консоль, а то которое содержит массив. Это разные вещи. При помощи переменной i вы проходите элементы массива. Если у вас массив 10 элементов, а i = 19, то как вы хотите присвоить значение элементу Array1[19], если его не существует? ведь массив заканчивается на Array1[9]. Разберемся с -1, его там быть не должно. Потому что начиная от -1 вы пытаетесь присвоить значение элементу Array1[-1], такого элемента нет, так как элементы массивов начинают свою нумерацию с 0. Еще момент, если хотите чтобы i каждый раз увеличилась на 2, то нужно писать так i=i+2. Предположим мы исправили это все и у нас цикл начинается от i=1. Далее согласно вашему коду вы присваиваете значение каждому второму элементу массива Array1[1] = 1, Array1[3] = 3, Array1[5] = 5 … при этом элементы массива Array1[0], Array1[2], Array1[4] остаются равными 0. Что разумеется неэффективно. Нужно, чтобы элементы массива выглядели так Array1[0] = 1, Array1[1] = 3, Array1[2] = 5, Array1[3] = 7 ..