Найболее близкий к найменьшему - такой, который отличается от найменьшего на минимальное число (если нарисовать это на прямой, то тот, который ближе всех к нему)
Код
{Пусть найменьший - это min, minn - его номер в массиве }
min2 := high(integer); {очень большое число -- на минимум явно не тянет}
for i := 1 to n do
if i <> minn {минимальный не нужен}
and abs(a[i] - min) < min2 then min2 := a[i]
Во втором после нахождения минимума снова проходим по исходному массиву, заталкивая во второй элементы, которые не равны минимальному