Заменить все положительные элементы массива ** максимальный элемент массива .Напишите...

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

Заменить все положительные элементы массива на максимальный элемент массива .Напишите программу в ПАСКАЛЬ.


спросил от Начинающий (307 баллов) в категории Информатика

2 Ответы

0 голосов
ответил от Одаренный (1.2k баллов)
 
Лучший ответ

Var
i,max:integer;
a:array [1..10] of integer;
begin
for i:=1 to 10 do begin
readln(a[i]);
end;
max:=a[1];
write('Исходный массив: ');
for i:=1 to 10 do begin
write(a[i]);
write(' ');
end;
for i:=1 to 10 do begin
if (a[i] >  max ) then
max:=a[i];
end;
for i:=1 to 10 do begin
if (a[i] > 0) then a[i]:=max;
end;
writeln(' ');
write('Полученный массив: ');
for i:=1 to 10 do begin
write(a[i]);
write(' ');
end;
end.

0 голосов
ответил от БОГ (150k баллов)
// PascalABC.NET 3.2, сборка 1341 от 20.11.2016
begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var mx:=a.Max;
  a:=a.Select(x->x>0?mx:x).ToArray; a.Println
end.

Пример
n= 13
8 24 17 -33 -50 34 -41 6 23 38 -19 24 38
38 38 38 -33 -50 38 -41 38 38 38 -19 38 38
оставил комментарий от Одаренный (1.2k баллов)

var
i,max:integer;
a:array [1..10] of integer;

begin
for i:=1 to 10 do begin
readln(a[i]);
end;
max:=a[1];
write('Исходный массив: ');
for i:=1 to 10 do begin
write(a[i]);
write(' ');
end;
for i:=1 to 10 do begin
if (a[i] > max ) then
max:=a[i];
end;
for i:=1 to 10 do begin
if (a[i] > 0) then a[i]:=max;
end;
writeln(' ');
write('Полученный массив: ');
for i:=1 to 10 do begin
write(a[i]);
write(' ');
end;
end.

оставил комментарий от Одаренный (1.2k баллов)

Круто пишешь, я еще и не туда код отправил, куда хотел)) Честно, завидую тебе, я так бы не смог написать

оставил комментарий от Одаренный (1.2k баллов)

Тогда все понятно, вопросов нет ))

...