Дан одномерный массив a[n]. найти минимум и среднее значение его отрицательных элементов. получить новый массив в[n] путем замены всех минимальных элементов массива a на среднее значение.паскаль,
Const N = 13; Var A,B:array[1..N] of real; i:integer; Sr,M:real; Begin Write('Исходный массив: '); For i:= 1 to N do Begin A[i]:=random(21)-10; Write(A[i],' '); if A[i]<0 then Sr:=Sr+A[i]; End; Sr:=Sr/N; M:=A[1]; For i:= 2 to N do if A[i]<M then M:=A[i]; WriteLn; Write('Переработанный массив: '); For i:= 1 to N do Begin if A[i]=M then B[i]:=Sr else B[i]:=A[i]; Write(B[i]:0:3,' ') End End.
// PascalABC.NET 3.2, сборка 1389 от 01.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println; var negMin:=a.Where(x->x<0).Min; var negAvg:=a.Where(x->x<0).Average; var b:=a.Select(x->real(x=NegMin?negAvg:x)).ToArray; b.Println end.
N = 13;
Var
A,B:array[1..N] of real;
i:integer;
Sr,M:real;
Begin
Write('Исходный массив: ');
For i:= 1 to N do
Begin
A[i]:=random(21)-10;
Write(A[i],' ');
if A[i]<0 then Sr:=Sr+A[i];
End;
Sr:=Sr/N;
M:=A[1];
For i:= 2 to N do
if A[i]<M then M:=A[i];
WriteLn;
Write('Переработанный массив: ');
For i:= 1 to N do
Begin
if A[i]=M then B[i]:=Sr
else B[i]:=A[i];
Write(B[i]:0:3,' ')
End
End.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var negMin:=a.Where(x->x<0).Min;
var negAvg:=a.Where(x->x<0).Average;
var b:=a.Select(x->real(x=NegMin?negAvg:x)).ToArray;
b.Println
end.
Пример
n= 10
24 -57 1 97 -20 -42 38 22 7 74
24 -39.6666666666667 1 97 -20 -42 38 22 7 74