program average;
const n=10;
var avg:real; //среднее ариф.
count:integer;//кол-во чисел, превосходящих ср. ариф
m:array[1..n] of integer; //массив из 10 целых чисел
i:byte; //счетчик цикла
begin
count:=0; avg:=0;
writeln('Введите в строку 10 чисел');
for i:=1 to n do begin
read(m[i]);//считываем в цикле 10 чисел
avg:=avg+m[i];//подсчитываем сумму элементов
end;
avg:=avg/10;//вычисляем среднее ариф. значение
//перебираем массив в цикле
for i:=1 to n do
if (m[i]>avg) then count:=count+1;//если элемент массива больше чем ср. ариф, то счетчик таких чисел увеличиваем на 1
//вывод на экран требуемого значения
writeln(count);
end.
Объяснение:
попробовал все разъяснить в комментариях к строкам кода
Поделитесь своими знаниями, ответьте на вопрос:
Тогда a⊕b→a; a⊕b→b; a⊕b→a - это был обмен значениями a ↔ b
Теперь по этой же схеме обменяем местами b и с:
b⊕c→b; b⊕c→с; b⊕c→b.
Результат: b→a; c→b; a→c
Программа для иллюстрации:
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
var a:=50;
var b:=-20;
var c:=0;
Println('Исходные значения: a=',a,'b=',b,'c=',c);
a:=a xor b; b:=a xor b; a:=a xor b;
b:=b xor c; c:=b xor c; b:=b xor c;
Println('Результат обмена: a=',a,'b=',b,'c=',c)
end.
Результат:
Исходные значения: a= 50 b= -20 c= 0
Результат обмена: a= -20 b= 0 c= 50