Что не правильно в этой программе? надо найти среднее арифметическое нечетных чисел. В...

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

Что не правильно в этой программе? надо найти среднее арифметическое нечетных чисел. В этой строке (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.


Информатика (29 баллов) | 60 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

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

(3.9k баллов)