Опубликовано 03.01.2018 по предмету Информатика от Гость

Паскаль. Программа работает, но выдает не тот результат - вставляет заданное число на первое место и зачем-то меняет другими числами оставшиеся элементы массива. Что надо исправить?
Условие: Вставить перед первым четным элементом массива заданное число.
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.

Ответ оставил Гость

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.
Теперь должно работать

Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы
Самые новые вопросы