• Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые положительные значения от 1 до 10 000 включительно. Напишите на языке программирования Паскаль программу, которая находит сумму минимального из четных элементов массива и минимального из нечетных элементов массива, затем уменьшает все элементы массива, которые больше этой суммы, на величину этой суммы, на величину этой суммы, и выводит измененный массив в обратном порядке, по одному числу в строке. Если в массиве нет четных или нечетных элементов, считается, что соответствующий минимум равен 0. Например, из массива
    7, 5, 2, 4, 8,10, 14, 15
    программа должна получить массив
    7, 5, 2, 4, 1, 3, 7, 8
    и вывести (по одному числу в строке) числа:
    8 7 3 1 4 2 5 7

Ответы 1

  • если массив заполняется случайными числами , то

    var

     mas: array[0..31]of word;

     a, b, c: integer;

    begin

     b := 10000;

     c := 10000;

     for a := 0 to 29 do

     begin

       mas[a] := random(9999) + 1;

       if mas[a] mod 2 = 0 then begin if mas[a] < b then b := mas[a]; mas[30] := mas[30] + 1; end;

       if mas[a] mod 2 = 1 then begin if mas[a] < c then c := mas[a]; mas[31] := mas[31] + 1; end;

     end;

     if mas[30] = 0 then b := 0;

     if mas[31] = 0 then c := 0;

     for a := 0 to 29 do begin if mas[a] > c + b then mas[a] := mas[a] - c - b; writeln(mas[a]); end

    end.

    если массив заполняется вручную , то

    label o;

    var

     mas: array[0..31]of word;

     a, b, c: integer;

    begin

     b := 10000;

     c := 10000;

     for a := 0 to 29 do

     begin

       o:

       read(mas[a]);

       if (mas[a] < 1)or(mas[a] > 10000) then goto o;

       if mas[a] mod 2 = 0 then begin if mas[a] < b then b := mas[a]; mas[30] := mas[30] + 1; end;

       if mas[a] mod 2 = 1 then begin if mas[a] < c then c := mas[a]; mas[31] := mas[31] + 1; end;

     end;

     if mas[30] = 0 then b := 0;

     if mas[31] = 0 then c := 0;

     for a := 0 to 29 do begin if mas[a] > c + b then mas[a] := mas[a] - c - b; writeln(mas[a]); end

    end.

    • Автор:

      abdiel
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years