Почему программа во всех процедурах выдает ноль при любых введенных числах?

Программа во всех процедурах выдает ноль при любых введенных числах. Уже всё перепробовала. Что не так?

program weather;

uses crt;

var
  a:array [1..31] of integer;
  i,s,t,max,min:integer;

procedure sum;
begin
  read(i);
  s:=0;
  for i:=1 to 31 do
    s:=s+a[i];
  s:=s;
  writeln(s);
end;

procedure hot;
begin
  read(i);
  s:=0;
  for i:=1 to 31 do
    if (a[i]>0) then
      s:=s+1;
  writeln(s);
end;

procedure cold;
begin
  read(i);
  s:=0;
  for i:=1 to 31 do
    if (a[i]<0) then
      s:=s+1;
  writeln(s);
end;

procedure max_t;
begin
  read(i);
  max:=a[31];
  for i:=1 to 31 do
    if (a[i]>max) then
      max:=a[i];
  writeln(max);
end;

procedure min_t;
begin
  read(i);
  min:=a[31];
  for i:=1 to 31 do
    if (a[i]<min) then
      min:=a[i];
  writeln(min);
end;

begin
  sum;
  hot;
  cold;
  max_t;
  min_t;
end.

Ответы (1 шт):

Автор решения: IUId

в procedure sum вы для чего-то присваиваете в конце программы переменной s её же значение равное нулю и вы не присвоили значение элементам массива

→ Ссылка