Подскажите алгоритм нахождения первого минимального и последнего максимального элемента...

0 голосов
156 просмотров

Подскажите алгоритм нахождения первого минимального и последнего максимального элемента одномерного массива С++
Пример : arrey[0,1,0,3,9,3,4,9] нужно вывести первый 0 и последнюю 9


Информатика Начинающий (137 баллов)
оставил комментарий Начинающий (799 баллов)

а вот какие условия нужны подумай сам\

оставил комментарий Начинающий (799 баллов)

ой

оставил комментарий Начинающий (799 баллов)

шо я написал

оставил комментарий Начинающий (799 баллов)

дурная голова

оставил комментарий Начинающий (799 баллов)

две переменные под максимум и минимум, которые равны нулевому элементу массива, а затем цикл и в нем сравнение каждого элемента с максимумом и минимумом

оставил комментарий Начинающий (137 баллов)

int min = a[0];int max = a[0]; for (int i = 1; i < n; i++){ if (a[i] < min) min = a[i];if (a[i] > max)max = a[i]; }

оставил комментарий Начинающий (137 баллов)

с данным алгоритмом выводит первый мин и первый мах

оставил комментарий Начинающий (137 баллов)

все разобрался СПАСИБО! нужно при поиске max элемента поставить a[i]>=max

оставил комментарий Начинающий (799 баллов)

Да не, должно и просто со знаком > работать

оставил комментарий Начинающий (137 баллов)

при строгом равенстве он берет первый мах так как когда он нашёл первое макс число он его записывает и в дальнейшем принахождении этого же числа условие спрашивает 9>9 нет не больше и оставляет первое макс число

Дан 1 ответ
0 голосов
Одаренный (1.5k баллов)
 
Правильный ответ

Я понял вашу проблему.
Вот мое решение, что-бы найти первое минимальное, я использую стандартный алгоритм.
А вот что-бы найти последнее максимальное, я ещё к мешьше прибавляю равно, что-бы если мне встретилось ещё раз это число, то оно заново записалось в переменную мах.
UPD:
Добавил ещё решение через позиции, оно наглядно показывает работоспособность алгоритма. Рекомендую использовать его.


image
image
оставил комментарий Начинающий (137 баллов)

Я также решил)

...