Задать вопрос
31 января, 12:09

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

+4
Ответы (1)
  1. 31 января, 15:07
    0
    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
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Паскаль. Данная программа работает, но только при некоторых значениях a[i]. Я думаю, что дело в этом условии (a[j]) > (a[i]). Если a[j] ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы