Сформировать одномерный массив, состоящий из n элементов (Каждый элеме нт – целое число...

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

Сформировать одномерный массив, состоящий из n элементов (Каждый элеме
нт – целое число из диапазона от 0 до 15, формируемое с помощью генератора случайных чисел, n<=20 вводится с клавиатуры). Вставить перед максимальным элементом число -5. Если таких элементов несколько, то вставить перед каждым.<br> ____
program qw;
var
max, b, i, n, j : integer;
a:array[1..45] of integer;
begin

max:=a[1]; b:=0;
repeat
write ('Введите размерность массива n (не больше 20): ');
read(n);
until n<=20;<br> writeln;

for i:=1 to n do
begin
a[i]:=random(15);
if a[i]>max then
max:=a[i];
end;
for i:=1 to n do
write(a[i],' ');
writeln;
writeln('max = ',max);

for i:=(1+b) to (n+b) do
begin
if a[i] = max then begin
a[i+1]:=a[i];
a[i]:=-5;
b:=b+1;
end
else
a[i]:=a[i+b];
end;

for i:=1 to n do
write(a[i],' ');

end.
___
что я делаю не так?


Информатика (14 баллов) | 51 просмотров
Дан 1 ответ
0 голосов

Ну во-первых max:=a[1]; нужно задать после того как массив готов!

а вместо этого
 
for i:=(1+b) to (n+b) do
begin
if a[i] = max then begin
a[i+1]:=a[i];
a[i]:=-5;
b:=b+1;
end
else
a[i]:=a[i+b];
end;
Попробуй это
 b:=-50;  for i:=1 to n do    if a[i]:=max then a[i]:=a[i]+b;

(314 баллов)