Паскаль. программа работает, но выдает не тот результат - вставляет заданное число на первое место и зачем-то меняет другими числами оставшиеся элементы массива. что надо исправить? условие: вставить перед первым четным элементом массива заданное число. program vstavka; var i,n,k,z: integer; a: array[1..1000] of integer; begin assign (input,'input.txt'); assign (output,'output.txt'); reset (input); rewrite (output); readln(n,z); for i: =1 to n do read (a[i]); i: =a[1]; for i: =1 to n do if a[i] mod 2=0 then begin for k: =n+1 downto k+1 do a[i]: =a[i-1]; a[k]: =z; n: =n+1; break; end; for i: =1 to n do write(a[i],' '); close (input); close (output); end.

Сергейtrek9 Сергейtrek9    3   27.05.2019 17:20    0

Ответы
Gumashova Gumashova  24.06.2020 19:18
Program vstavka;
var i,n,k,z:integer;
a:array[1..1000] of integer;
begin
assign (input,'input.txt');
assign (output,'output.txt');
reset (input);
rewrite (output);
readln(n,z);
for i:=1 to n do read (a[i]);
i:=a[1]; // что это? Удаляем
for i:=1 to n do
if a[i] mod 2=0 then
begin
k:= i;
for i:=n+1 downto k+1 do
a[k]:=a[k-1]; // вместо i берем k
a[k]:=z;
break;
end;
for i:=1 to n do write(OutPut, a[i]:4);
close (input);
close (output);
end.
Теперь должно работать
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика