Сформировать одномерный массив, состоящий из n элементов (каждый элеме нт – целое число из диапазона от 0 до 15, формируемое с генератора случайных чисел, n< =20 вводится с клавиатуры). вставить перед максимальным элементом число -5. если таких элементов несколько, то вставить перед каждым. 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; 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. что я делаю не так?

kristinakomaro5 kristinakomaro5    2   12.07.2019 12:10    1

Ответы
Миша142546 Миша142546  18.09.2020 12:01
Ну во-первых 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;
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика