Дан одномерный массив a[n]. найти сумму отрицательных элементов. получить новый массив b[n] путем замены нулевых элементов на полученную сумму. pascal

kutluyulova04 kutluyulova04    3   03.09.2019 11:50    0

Ответы
fyjdtjjhtjh fyjdtjjhtjh  06.10.2020 14:39
// PascalABC.NET 3.2, сборка 1509 от 27.07.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
  var s:=a.Where(x->x<0).Sum; // сумма отрицательных элементов
  var b:=a.Select(x->x=0?s:x).ToArray; b.Println
end.

Пример
n= 20
1 6 2 4 2 3 5 -8 2 -6 0 1 -7 0 -7 8 -4 -8 -1 -8
1 6 2 4 2 3 5 -8 2 -6 -49 1 -7 -49 -7 8 -4 -8 -1 -8
ПОКАЗАТЬ ОТВЕТЫ
F92120554651 F92120554651  06.10.2020 14:39
Const
 n=10;
var
 A: array[1..n] of integer;
 B:array[1..n] of integer;
  i: integer;
  sum: integer;
begin
{Заполнение массивов случайными числами}
randomize;
for i:=1 to n do begin
  A[i]:=random(100)-50;
  B[i]:=random(100)-50; {или B[i]=A[i];, если значения массива B должны совпадать со значениями массива A }
end;
{Поиск суммы отрицательных элементов}
sum:=0;
for i:=1 to n do 
  if A[i]<0 then sum:=sum+A[i];
{Замена нулевых элементов массива B на полученную сумму}
for i:=1 to n do
  if B[i]=0 then B[i]:=sum;
{Вывод значений массива A}
writeln('массив A');
for i:=1 to n do
  write(A[i],',');
writeln('');
writeln('Массив B');
{Вывод значений массива B}
for i:=1 to n do
  write(B[i],',');

{Ожидание нажатия клавиши return от пользователя.}
readln;
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика