Замечание. Так как количество вводимых чисел заранее не известно, то откроем бесконечный цикл со всегда верным условием 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} begin k:=k+1; {количество увеличиваем на 1} s:=s+x; {увеличиваем предыдущее значение суммы на число х} end; end; if k=0 then writeln('NO') {если двузначных чисел не было, то вывод NO} else writeln(s/k); {иначе вывод ср.арифметического} end.
Var i,d,n,k:integer; begin Write('Введите трехзначное натуральное число: '); Read(n); k:=0; for i:=1 to 3 do begin d:=n mod 10; if d mod 3=0 then begin Inc(k); Write(d,' ') end; n:=n div 10 end; if k>0 then Write('- цифры, кратные трем') else Write('Таких цифр нет') end.
Введите трехзначное натуральное число: 184 Таких цифр нет
Замечание: в программе считается, что цифра 0 также кратна трем (как и всем другим числам), поскольку остаток от деления от нуля на 3 равен 0. Если это не так, то замените условие d mod 3 = 0 на (d mod 3 = 0) and (d>0)
1
Объяснение:
условие где