Поменять местами минимальный и максимальный элементы массива

Задача

В массиве найти минимальный и максимальный элементы, поменять их местами.

Решение

При поиске минимального и максимального элемента следует запоминать их индексы, а не значения. Поиск выполняется в цикле for, в котором с помощью условного оператора проверяется каждый элемент массива. Если он больше (или меньше), чем элемент по индексу, который сохранен в соответствующей переменной, то следует в эту переменную записать индекс текущего элемента.

После цикла необходимо значение максимального элемента поставить в место массива, имеющее индекс минимального элемента. Чтобы не потерять при этом минимум, следует сохранить его в отдельной (буферной) переменной. Это значение потом будет присвоено по индексу максимального элемента.

const N = 5;
var
    a: array[1..N] of real;
    min, max, i: byte;
    b: real;
begin
    randomize;
    for i:=1 to N do begin
        a[i] := random();
        write(a[i]:6:2);
    end;
    writeln;
    min := 1;
    max := 1;
    for i:=2 to N do begin
        if a[i] < a[min] then
            min := i
        else
            if a[i] > a[max] then
                max := i;
    end;
    b := a[min];
    a[min] := a[max];
    a[max] := b;
    for i:=1 to N do
        write(a[i]:6:2);
    writeln;
end.

Пример выполнения программы:

  0.92  1.00  0.42  0.40  0.48
  0.92  0.40  0.42  1.00  0.48

 

Тема

Одномерные массивы

Уровень

Простые задачи

Последняя редакция

Добавить комментарий