• Предмет: Информатика
  • Автор: mobileTanks
  • Вопрос задан 11 месяцев назад

Дан целочисленный массив из n элементов. Элементы массива могут принимать целые положительные значения от 1 до 10 000 включительно (такие числа будет вводить пользователь, это проверять не нужно). Напишите программу, которая находит разность максимального из чётных элементов массива, оканчивающихся на 2 и минимального из нечётных элементов массива, оканчивающихся на 5, затем уменьшает все элементы массива, которые больше этой разности, на величину этой разности, и выводит изменённый массив в обратном порядке в одну строку.
34, 22, 17, 42, 25, 10, 15, 45
программа должна получить массив
7, 22, 17, 15, 25, 10, 15, 18
и вывести:
18, 15, 10, 25, 15, 17, 22, 7

Ответы

Ответ дал: Helper211
1

Ответ:

const N = 8;

var i,min,max: integer;

var a: array [1..N] of integer;

begin

write('Введите массив: ');

min:=0;

max:=0;

for i:=1 to N do  

 begin

 readln(a[i]);

 if (a[i] mod 2 = 0) and (a[i] mod 10 = 2) then

   begin

   if (max=0) then max:=a[i]

   else if (a[i]>max) then  max:=a[i];

   end;

 if (a[i] mod 2 <> 0) and (a[i] mod 10 = 5) then

   begin

   if (min=0) then min:=a[i]

   else if (a[i]<min) then  min:=a[i];

   end;  

 end;

for i:=N downto 1 do  

 begin

 if (a[i]>(max-min)) then a[i]:=a[i]-(max-min);

 write(a[i],' ');

 end;

end.

Ответ дал: BobbyFresnel
0

// PascalABC.NET

begin

   var n := ReadInteger;

   var a := ReadArrInteger(n);

   var d :=

       a.Where(p -> p.IsEven and (p mod 10 = 2)).Max -

       a.Where(p -> p.IsOdd and (p mod 10 = 5)).Min;

   a.Transform(p -> p > d ? p - d : p);

   a.Reverse.Print

end.

Приложения:
Вас заинтересует