ответ:max := -1001;for j := 1 to N doif (abs(a[j]) mod 10 <> 3) and (a[j]<0) thenif a[j]>max then max := a[j];if max=-1001 then write('Не найдено') else write(max);Объяснение:max := -1001;
Присваиваем переменной max, которая должна содержать максимальное значение, минимальное значение -1 ( -1000 -1 = -1001).
for j := 1 to N doif (a[j] mod 10 <> 3) and (a[j]<0) thenif a[j]>max then max := a[j];
Пробегаемся по элементам массива и смотрим: если остаток модуля элемента от деления на 10 неравен 3 (т.е. не оканчивается цифрой 3) и элемент меньше 0 (т.е. отрицательный), тогда, при условии, что элемент больше текущего максимального значения, переменную max перезаписываем -- присваиваем ей текущий элемент.
if max=-1001 then write('Не найдено') else write(max);
Если переменная max содержит изначальное значение (-1001), то выводим на экран "Не найдено", иначе выводим на экран max.
// PascalABC.NET 3.0, сборка 1088 const n=10; // количество вводимых чмсел var a:array[1..n] of integer; i,k,t:integer; begin Writeln('Введите через пробел ',n,' целых чисел'); k:=0; for i:=1 to n do begin Read(t); if Odd(t) then begin Inc(k); a[k]:=t end end; if k>0 then begin Write('Нечетные числа: '); for i:=1 to k do Write(a[i],' '); Writeln end else Writeln('Все введенные числа - четные') end.
Присваиваем переменной max, которая должна содержать максимальное значение, минимальное значение -1 ( -1000 -1 = -1001).
for j := 1 to N doif (a[j] mod 10 <> 3) and (a[j]<0) thenif a[j]>max then max := a[j];Пробегаемся по элементам массива и смотрим: если остаток модуля элемента от деления на 10 неравен 3 (т.е. не оканчивается цифрой 3) и элемент меньше 0 (т.е. отрицательный), тогда, при условии, что элемент больше текущего максимального значения, переменную max перезаписываем -- присваиваем ей текущий элемент.
if max=-1001 then write('Не найдено') else write(max);Если переменная max содержит изначальное значение (-1001), то выводим на экран "Не найдено", иначе выводим на экран max.
Пример работы:const
n=10; // количество вводимых чмсел
var
a:array[1..n] of integer;
i,k,t:integer;
begin
Writeln('Введите через пробел ',n,' целых чисел');
k:=0;
for i:=1 to n do begin
Read(t);
if Odd(t) then begin Inc(k); a[k]:=t end
end;
if k>0 then begin
Write('Нечетные числа: ');
for i:=1 to k do Write(a[i],' ');
Writeln
end
else Writeln('Все введенные числа - четные')
end.
Тестовое решение:
Введите через пробел 10 целых чисел
24 137 -53 46 0 -18 35 2 352 1111
Нечетные числа: 137 -53 35 1111