Из заданного массива создать три массива, в одном из которых содержатся элементы кратные 2, в другом кратные 5 - Turbo Pascal

Формулировка задачи:

Из заданного массива создать три массива, в одном из которых содержатся элементы кратные 2, в другом кратные 5, в третьем оставшиеся элементы.
const t=12;
var i,ai,bi,ci,di:integer;
    a:array [1..101] of integer;
    b:array [1..101] of integer;
    c:array [1..101] of integer;
    d:array [1..101] of integer;
begin
  ai:=0; bi:=0; ci:=0; di:=0;
  for i:=1 to t do
  begin
  a[i]:=random(100);
  writeln('a[',i,']=',a[i]);
  end;
  for i := 1 to t do
  begin
    
      if (a[i] mod 2=0) and (a[i]<>0) then
        begin
            b[i]:=a[i];
            bi:=bi+1;
        end;
                  if (a[i] mod 5=0) and (a[i]<>0) then
                   begin
                        c[i]:=a[i];
                        ci:=ci+1;
                   end;
                        if (a[i] mod 5<>0) and (a[i] mod 2<>0) then
                            begin
                                d[i]:=a[i];
                                di:=di+1;
                            end;
  end;
  writeln('kratnie 2: ');
  for i := 1 to bi do
  writeln('b[',i,']=',b[i]);
  writeln('kratnie 5: ');
  for i := 1 to ci do
  writeln('c[',i,']=',c[i]);
  writeln('ostalnie :');
  for i := 1 to di do
  writeln('d[',i,']=',d[i]);
  readln;
  end.
Не пойму почему он выводит ерунду)

Код к задаче: «Из заданного массива создать три массива, в одном из которых содержатся элементы кратные 2, в другом кратные 5 - Turbo Pascal»

textual
const n=10;
var a,b,c,d:array [1..n] of integer;
i,bi,ci,di:integer;
begin
writeln('Исходный массив:');
for i:=1 to n do
begin
   a[i]:=random(55);
   write(a[i],' ');
end;
bi:=0;
ci:=0;
di:=0;
for i:=1 to n do
begin
   if (a[i] mod 2 = 0) then
      begin
         inc(bi);
         b[bi]:=a[i];
      end;
   if (a[i] mod 5 = 0) then
      begin
         inc(ci);
         c[ci]:=a[i];
      end;
  if (a[i] mod 5 <> 0) and (a[i] mod 2 <>0) then
      begin
         inc(di);
         d[di]:=a[i];
      end;
 end;
 writeln;
 if bi>0 then
 begin
 writeln('Массив чисел,кратных 2:');
 for i:=1 to bi do
 write(b[i],' ');
 writeln;
 end
 else writeln('Чисел,кратных 2 нет.');
 if ci>0 then
 begin
 writeln('Массив чисел,кратных 5:');
 for i:=1 to ci do
 write(c[i],' ');
 writeln;
 end
 else writeln('Чисел,кратных 5 нет.');
 if di>0 then
 begin
 writeln('Оставшиеся числа:');
 for i:=1 to di do
 write(d[i],' ');
 writeln;
 end
 else writeln('Лишних чисел нет.');
 readln;
 end.

7   голосов, оценка 3.857 из 5


СОХРАНИТЬ ССЫЛКУ