Задать вопрос
11 августа, 12:20

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

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

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. 11 августа, 13:03
    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.

    Теперь должно работать
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Паскаль. Программа работает, но выдает не тот результат - вставляет заданное число на первое место и зачем-то меняет другими числами ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы