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