• Предмет: Информатика
  • Автор: nikichosipov
  • Вопрос задан 2 года назад

Помогите найти ошибку (Информатика, Паскаль).
var s,k,a:integer;
Begin
s:=0;
k:=0;
Read(a);
while a<>0 do
Begin
if a mod 8=0 then
Begin
s:=s+a;
k:=k+1;
end;
Readln(a);
end;
var y:real;
begin
y:= s/k;
Read(s);
if s>0 then
Writeln(y)
else
Writeln('NO')
end;
end.


Аноним: Ошибок в программе нет
nikichosipov: Но она почему-то не работает! В последовательности чисел программа находит среднее арифметическое кратных 8 или сообщает, что таких чисел нет (NO). Последовательность чисел заканчивается на 0.
Аноним: Т.е. она работает неправильно. Но тогда надо было вопрос иначе формулировать. Привести исходное условие и спросить, почему эта программа не решает задачи.

Ответы

Ответ дал: petyaGavrikov
0
var s,k,a:integer;
Begin
s:=0;
k:=0;
Readln(a);
while a<>0 do
Begin
if a mod 8=0 then
Begin
s:=s+a;
k:=k+1;
end;
Readln(a);
end;
if k>0 then Writeln(s/k)
else Writeln('NO')
end.

Пример:
43
61
16
95
24
0
20
Вас заинтересует