Найти наименьшее из четных чисел , входящих в последовательность

Ostap1234

Даны , натуральное число n, и целые числа a(1).....a(n).Найти наименьшее из четных чисел , входящих в последовательность a(1)-1,a(1),a(2).....a(n). Не знаю как решить , да и даже с чего начать , помогите пж , если не трудно то с объяснением решения. Очень буду благодарен!!
7 ответов

Ostap1234

Если остаток от деления целого числа на 2=0, то число четное.


Ostap1234

Другой вариант (воспользуемся тем фактом, что максимальное число нечётно):
  mn:=High(mn);
  for i:=Low(a) to High(a) do
    if not Odd(a[i]) and (mn>a[i]) then mn:=a[i];
  if mn<>High(mn)
  then WriteLn('Минимальный чётный: ',mn)
  else WriteLn('Чётных элементов НЕТ');


Ostap1234

как запускаю пишет что a-неизвестная переменная


Ostap1234

Так раздел var напишите.


Ostap1234

Объявите переменные
var n,i,mn,integer;
     a:array[1..100] of integer;
Введите размер массива n<=100 Заполните его числами или вводом с клавы или с помощью random. Программ на массивы в разделе море, ищите изучайте. Алгоритм решения
mn:=1;
for i:=1 to n do
if a[i] mod 2=0 then
 begin
  if mn=1 then mn:=a[i]
  elae if a[i]<mn then mn:=a[i];
 end;
if mn=1 then write('В массиве нет четных элементов')
else write('Минимальный четный элемент=',mn);


Ostap1234

Спасибо огромное , еще пару вопросов что в 3 строке означает "mod 2=0",команду mod знаю , а вот что 2=0 не пойму,и если можно блок схему.Буду очень благодарен.И спасибо за быстрый ответ !


Ostap1234

"mod 2=0
Проверка на четность