Задать вопрос
26 января, 08:58

Паскаль. Программа работает, но выдает не тот результат - вставляет заданное число на первое место и зачем-то меняет другими числами оставшиеся элементы массива. Что надо исправить?

Условие: Вставить перед первым четным элементом массива заданное число.

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.

+2
Ответы (1)
  1. 26 января, 11:13
    0
    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.

    Теперь должно работать
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Паскаль. Программа работает, но выдает не тот результат - вставляет заданное число на первое место и зачем-то меняет другими числами ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы