Задать вопрос
9 мая, 07:02

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

+5
Ответы (1)
  1. 9 мая, 07:36
    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] ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы