Если количество четных элементов массива А(n,m) больше количества нечетных, то уменьшить...

0 голосов
36 просмотров

Если количество четных элементов массива А(n,m) больше количества нечетных, то уменьшить все положительные элементы вдвое, в противном случае найти сумму отрицательных элементов каждого столбца


Информатика (77 баллов) | 36 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Const
  nn = 20;
  mm = 20;

var
  a: array[1..nn, 1..mm] of integer;
  i, j, m, n, n1,n2,sj: integer;

begin
  { Формирование массива и вывод его элементов.
    Попутный подсчет количества четных и нечетных элементов }
  n1:=0; n2:=0;
  Write('Введите через пробел число строк и столбцов массива: ');
  Readln(n, m);
  Randomize;
  Writeln('Исходный массив');
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i, j] := Random(101) - 50;
      Write(a[i, j]:4);
      if (a[i,j] mod 2=0) then n2:=n2+1 else n1:=n1+1
    end;
    Writeln
  end;
  { Сравнение и ветвление }
  if n2>n1 then
    { Уменьшить вдвое все положительные элементы }
  begin
    Writeln('Результирующий массив');
    for i:=1 to n do
    begin
      for j:=1 to m do
      begin
        if a[i,j]>0 then a[i,j]:=a[i,j] div 2;
        Write(a[i,j]:4)
      end;
      Writeln
    end
  end
  else
  begin
    { Найти суммы отрицательных элементов каждого столбца }
    Writeln('Суммы отрицательных элементов по столбцам');
    for j:=1 to m do
    begin
      sj:=0;
      for i:=1 to n do
        if a[i,j]<0 then sj:=sj+a[i,j];<br>      Write(sj,' ')
    end
  end
end.

Тестовое решение:
Введите через пробел число строк и столбцов массива: 8 5
Исходный массив
  13 -23  25   2 -36
 -19  47  -7 -24 -34
 -21  12 -29  46 -46
  18  -3  12 -26  -8
 -36 -39 -27 -48 -44
 -25  -4 -23 -11 -15
  49  24  -5  28  32
 -37 -32 -34  39  45
Суммы отрицательных элементов по столбцам
-138 -101 -125 -109 -183


(142k баллов)