program bt;
const fin='tich.inp';
      fout='tich.out';
var A:array[1..100] of word;
    n,i,t,s:integer;
    f1,f2:text;
procedure Nhap;
         begin
              assign(f1,fin);
              reset(f1);
              readln(f1,n);
              for i:=1 to n do read(f1,A[i]);
              close(f1);
         end;
function tich:integer;
        begin
        t:=0;
        for i:=1 to n do
           if (A[i] mod 2)<>0 then t:=t+1;
        s:=1;
        if (t<1) then s:=0 else
          begin
               for i:=1 to n do
                 if (A[i] mod 2)<>0 then s:=s*A[i];
          end;
        tich:=s;
        end;
procedure Xuat;
         begin
              assign(f2,fout);
              rewrite(f2);
              writeln(f2,tich);
              close(f2);
         end;
begin
Nhap;
Xuat;
end.

Inp 

5

1 2 5 7 11

Mn xem cái code của mình có gì sai không , 

Đề là tính tích những số lẻ trong dãy , nếu không có sl thì trả gt về 0

var
  a, n, i, s : integer;
begin
  ReadLn(n);
  s := 0;

  for i := 1 to n do
  begin
    Read(a);
    if a mod 2 <> 0 then 
      if s = 0 then s := a
      else s := s * a;
  end;

  WriteLn(s);
end.

Chắc không sai gì đâu. Bạn tham khảo code của mình để kiểm tra lại.