Паскаль. данная программа работает, но только при некоторых значениях 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.

Антон2004111 Антон2004111    1   22.06.2019 09:50    4

Ответы
Supermopsmeni Supermopsmeni  17.07.2020 16:11
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
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика