Информатика Архивный вопрос

Что не правильно в этой программе? надо найти среднее арифметическое нечетных чисел. В этой строке (i:=i+1;) пишет Нельзя изменять значение переменной цикла внутри этого цикла
Program P1;
Var K: array [1..40] of integer;
i,S: integer;
sr: real;
begin
For i:= 1 to 40 do K[i]:= random(21)+0;
writeln;
For i:= 1 to 40 do write(K[i], ' ');
S:=0;
i:=0;
writeln;
For i:= 1 to 40 do if K[i] mod 2=1 then begin
S:= S+K[i];
i:=i+1;
sr:= S/i;
end;
Write(sr);
end.

Нет комментариев

Ответы

Гость

Правильно пишет. В цикле for счётчик индексируется автоматически. Вручную его менять нельзя. В твоем цикле i является счетчиком цикла и одновременно еще и счетчиком нечетных элементов. Это недопустимо. Замени i на j например или другую букву для подсчета количества нечетных элементов.

Нет комментариев