Поиск максимального элемента в массиве
Задача
Найти максимальный элемент численного массива.
Решение
Алгоритм решения задачи:
Значения, составляющие массив, могут быть получены из разных источников: путем вызова функции random, ввода значений пользователем, считывания из файла. В программе ниже используется первый вариант.
В задачах подобного рода (поиск максиму или минимума) может быть поставлена цель, найти только 1) индекс элемента, 2) только значение или 3) и то и другое. В программе ниже используется третий вариант.
Неплохо бы, чтобы при запуске программы весь массив выводился на экран. В этом случае пользователь может оценить правильность работы программы.
- В переменной max_num хранится текущее максимальное значение массива, а в max_index – его позиция (индекс).
- В программе можно выделить две части: заполнение массива числами с выводом их на экран (первый цикл for) и непосредственно поиск максимума (второй цикл for).
- Перед первым циклом запускается процедура randomize для того, чтобы при каждом запуске программы значения массива были разными.
- Изначально делается предположение, что первый элемент массива и есть максимум. Поэтому переменной max_indexприсваивается значение 1 (т.е. указатель на первый элемент массива), а max_num – непосредственно значение, хранящееся в первой ячейке массива.
- Начиная со второго элемента, каждое очередное значение массива сравнивается с текущим значением max_num. В случае, если текущее значение массива больше, чем хранящиеся в max_num, происходит новое присваивание обоим переменным текущего значения и индекса.
Программа на языке Паскаль:
const m = 20; var arr: array[1..m] of byte; max_num, max_index: byte; i: byte; begin randomize; for i := 1 to m do begin arr[i] := random(100); write (arr[i]:3); end; max_index := 1; max_num := arr[1]; for i := 2 to m do if arr[i] > max_num then begin max_index := i; max_num := arr[i]; end; writeln; writeln ('Max = ',max_num); writeln ('position: ', max_index); readln end.
Комментарии
Массивы. Найти максимальное значение, минимальное и среднее
А как найти именно первый…
А как найти именно первый или последний максимальный элемент в том случае,если они одинаковы?
Несколько максимальных
Ответ на А как найти именно первый… от Гость (не проверено)