Задача по алгоритмам

  • 3
  • Недоступна
Все классические алгоритмы уже давным-давно запрограммированы. Тем не менее, задачки на алгоритмы — очень ценны. Хотя бы тем, что, развивают мышление программиста. В алгоритме поиска максимума ничего сложного и нет. Так что не медлим: пишем программу, в которой задаем положительное целое число n, затем вводим n чисел и находим максимальное среди них.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (158)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Vladimir Kashin13 уровень, Москва
3 марта, 09:54
Решил через два if и один for. PS. Картинка для тех, кто уже расправился с задачей, но желает посмотреть другое решение ;-)
Александр7 уровень, Москва
3 марта, 22:04
static int MAX_VALUE - Самая большая величина типа int static int MIN_VALUE - Минимальная величина типа int Прикольная фича. Не знал. Спасибо. Без нее первый ввод из N вводов приходится выносить за цикл и присваивать переменной максимума значение первого введенного числа (второго то есть, ну вы меня поняли).
Kari Karapetyan12 уровень, Москва
13 марта, 12:47
Ух ты,прикольная штука
Алексей11 уровень, Москва
28 февраля, 11:24
потная задачка
Aliaksandr7 уровень, Минск
15 февраля, 16:19
Если сравнивать не с 0 а с первым значение int max = mas [0]; вопрос с отрицательными значениями снимается... но проверку все равно не проходит
Oleh Krachun11 уровень
12 февраля, 00:17
Решил через сортировку массива, и вывел последнее число массива, размер массива - первое введенное число. Наполнение массива for (int i = 0; i < t; i++) arr[i] = Integer.parseInt(reader.readLine()); t - первое число введенное пользователем. Затем сортировка массива Arrays.sort(arr). Не забываем про util. Вывод последнего числа массива, с учетом особенности построения массива: System.out.println(arr[t-1]);
Анатолий7 уровень, Харьков
10 февраля, 19:49
Для тех, кто уже решил задачку, а сюда пришел чтоб глянуть другие решения:
Сергей С18 уровень, Минск
18 февраля, 16:22
Немного логичнее так:
int n = Integer.parseInt(reader.readLine());
        if (n < 0) System.out.println("Введите число >0");

        int maximum = Integer.parseInt(reader.readLine());
        for (int i = 0; i < n-1; i++) {
//...
Владимир Павленко22 уровень, Москва
10 февраля, 08:02
у INT минимальная величина -2147483648 и меньше не бывает
int maximum = -2147483648;
Для тех кому лень писать проверку на отрицательные числа :)
Анатолий7 уровень, Харьков
10 февраля, 19:46
Лучше пользоваться постоянной Integer.MIN_VALUE
int maximum = Integer.MIN_VALUE;
Антон13 уровень, Москва
9 февраля, 23:09
В условии не указано, что первая N, которая задает колличество чисел - учитываться не должно. А так - хорошая задачка, заставила покурить выйти.
Сергей19 уровень, Москва
6 февраля, 22:08
В общем, решил с первого раза через if { for { if (i==1) { вот тут переприсваивался maximum при условии если for совершает первый "проход"}. а дальше Math.max присвоенного максимума и вводимых значений! Успеха всем!
Demid9 уровень
8 марта, 05:45
для постфиксного инкремента первый проход i==0
Tanarri18 уровень
6 февраля, 07:59
мда, надо очень внимательно вчитываться в условия и предполагать, что пользователь таки начнет вводить с клавиатуры отрицательные числа вместо положительных. Отсюда вывод: 1) в качестве максимума нельзя принимать 0, потому что если пользователь будет вводить отрицательные числа - вы получите 0. 2) Первое полученное N так же нельзя принимать за максимум для начала сравнения, потому что оно по условиям задачи в сравнении участвовать не должно. Оно описывает только количество чисел которое вы получите в дальнейшем. 3) если пользователь невнимателен и введет таки первым числом отрицательное число, вы примете само число, вместо его модуля, и вы не предусмотрели отдельно цикл для работы с отрицательным первым числом, то программа посыпется. p.s.: ушло 9 попыток, чтоб понять те 3 условия, что описаны выше. Надеюсь, что вам понадобится гораздо меньше попыток :)
Александр Лав13 уровень, Минск
2 февраля, 13:38
Валидация выдает проверьте правильно ли программа работает с отрицательными числами. Вроде все верно. не могу понять что не так. Похоже проблема в том значении которое ты прописываешь сам. при сравнении. например a (число полученное с клавиатуры) > max (значение задано вручную) Вопрос как получить при первой итерации 2 числа?