Паскаль. Данная программа работает, но только при некоторых значениях a[i]. Я думаю, что дело в этом условии (a[j]) больше (a[i]). Если a[j] примет отрицательное значение, то в ответе выйдет "не найдено", так же будет выведено ...

Паскаль. Данная программа работает, но только при некоторых значениях a[i]. Я думаю, что дело в этом условии (a[j])>(a[i]). Если a[j] примет отрицательное значение, то в ответе выйдет "не найдено", так же будет выведено не найдено если первое число в массиве не удовлетворяет условию(a[i] mod 2=0) and (a[i]>0), но является самым маленьким. Я понимаю почему, помогите исправить. const n=8; var a:array[1..n] of integer; j,i:integer; begin for i:=1 to n do read(a[i]); j:=1; for i:=1 to n do begin if ((a[j])>(a[i])) and (a[i] mod 2=0) and (a[i]>0) then j:=i end; if (a[j] mod 2=0) and (a[j]>0) then write(a[j]) else write('не найдено'); end.
Гость
Ответ(ы) на вопрос:
Гость
const   n = 8;   nmax = 32767; var   a: array[1..n] of integer;   i, t, min: integer; begin   min := nmax;   for i := 1 to n do   begin     Read(t); a[i] := t;     if (t > 0) and (t mod 2 = 0) then       if min > t then min := t   end;   if min <> nmax then     Writeln('Минимальный положительный четный элемент равен ', min)   else     Writeln('В массиве нет четных положительных элементов') end. Тестовое решение: 353 638 -1000 -452 320 -18 19 0 Минимальный положительный четный элемент равен 320
Не нашли ответ?
Ответить на вопрос
Похожие вопросы