Найдите ошибку. Программа должна находить кратные числа и выписывать их номера. Но она...

0 голосов
41 просмотров

Найдите ошибку.
Программа должна находить кратные числа и выписывать их номера. Но она заполняет массив где должны быть номера четных чисел одним и тем же числом.
Вот программа:
program z1;
var a: array[1..1000] of integer;
b: array[1..1000] of real;
i,n,k :integer;
begin
i:=1;k:=0;
writeln('Введите количество чисел');
read(n);
writeln('Введите числа');
read(a[i]);
while i i:=i+1;
read(a[i]);
end;
for i:= 1 to n do begin
if a[i] mod 2 = 0 then begin
k:=k+1;
b[k]:=i;
end;
end;
write('Массив: ');
for i:=1 to n do write(a[i],' ');
write('Номера четных элементов: ');
for i:=1 to k do write(b[k],' ');
end.
Во вложении результат работы, вместо 3 3, она по идеи должна выдавать 1 3


image

Информатика (1.6k баллов) | 41 просмотров
0

В строке for i:=1 to k do write(b[k],' '); нужно b[k] заменить на b[i]

Дан 1 ответ
0 голосов
Правильный ответ

В последнем выводе там b[i]

(1.6k баллов)