Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номера двух элементов массива, наименее отличающихся друг от друга. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них. const N=30; var a: array [1..N] of integer; i, j, min, min2, s: integer; begin for i:=1 to N do readln(a[i]);

16 Авг 2021 в 19:41
65 +1
0
Ответы
1

Алгоритм:

Инициализируем переменные min и min2 как первые два элемента массива a.Проходим по массиву a, начиная с третьего элемента, и для каждого элемента находим разницу между ним и элементом min. Если эта разница меньше разницы между min и min2, то обновляем min2 и min соответственно.После завершения прохода по массиву, выводим индексы элементов min и min2.

Пример на языке программирования Pascal:

const N=30;
var a: array [1..N] of integer;
i, min, min2, diff, diff_min, diff_min2: integer;
begin
for i:=1 to N do
readln(a[i]);
min := a[1];
min2 := a[2];
diff_min := abs(min - min2);
for i := 3 to N do
begin
diff := abs(min - a[i]);
if diff < diff_min then
begin
diff_min2 := diff_min;
diff_min := diff;
min2 := min;
min := a[i];
end
else if diff < diff_min2 then
begin
diff_min2 := diff;
min2 := a[i];
end;
end;
for i := 1 to N do
begin
if a[i] = min then
write(i, ' ');
if a[i] = min2 then
write(i, ' ');
end;
end.

Этот алгоритм находит и выводит индексы двух элементов массива, которые наименее отличаются друг от друга.

17 Апр в 13:21
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир