Напишите программу, которая в последовательности натуральных чисел находит среднее...

0 голосов
1.1k просмотров

Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое двузначных чисел или сообщает, что таких чисел нет. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность заканчивается числом 0 (0 – признак окончания ввода, не является членом последовательности). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести среднее арифметическое двузначных чисел или вывести NO, если таких чисел в последовательности нет.


Информатика (617 баллов) | 1.1k просмотров
0

а какой ЯП?

0

Pascal

0

Что бы написать приложение нужно потратить больше 10 дней или даже месяц.

0

Чтобы написать школьное приложение обычно хватает пары минут.

Дано ответов: 2
0 голосов
Правильный ответ
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var r:=ReadSeqIntegerWhile(t->t<>0).Where(t->t.Between(10,99))
      .DefaultIfEmpty.Average;
  (r>0 ? r.ToString : 'No').Println
end.
(150k баллов)
0 голосов

Замечание. Так как количество вводимых чисел заранее не известно, то откроем бесконечный цикл со всегда верным условием True, но как только будет введено число 0, остановим цикл командой break.

Программа:

program z;
var k,s,x:integer;
begin
k:=0;              {начальное значение количества двузначных чисел}
s:=0;              {начальное значение суммы двузначных чисел}
while True do  {открываем бесконечный цикл}
begin
readln(x);        {вводим число х}
if x=0 then break;  {если введенное число равно 0, то остановить цикл}
if (x>9)and(x<100) then  {если число двузначное, т.е. от 10 до 99} <br>    begin 
    k:=k+1;         {количество увеличиваем на 1}
    s:=s+x;         {увеличиваем предыдущее значение суммы на число х}
    end;
end;
if k=0 then writeln('NO')  {если двузначных чисел не было, то вывод NO}
   else writeln(s/k);          {иначе вывод ср.арифметического}
end.

(1.2k баллов)