Вставить после максимального элемента значение, равное среднему арифметическому элементов массива. - PascalABC.NET
Формулировка задачи:
помогите пожалуйста, написать программу
Дан массив А размером N.Вставить после максимального элемента значение, равное среднему арифметическому элементов массива.
Решение задачи: «Вставить после максимального элемента значение, равное среднему арифметическому элементов массива.»
textual
Листинг программы
type vector=array[1..100]of real;
var a:vector;
n,i:integer;
x,max:real;
procedure formandprint(var a:vector; var n:integer);
var i:integer;
begin
write('Количество элементов ');
read(n);
for i:=1 to n do
a[i]:=Random(10);
writeln();
write('Исходный массив ');
for i:=1 to n do
write(a[i],' ');
writeln();
end;
function sred(a:vector; n:integer):real;
var i:integer; s:real;
begin
sred:=0;
s:=0;
for i:=1 to n do
s:=a[i]+s;
sred:=s/n;
end;
function findMax(a:vector; n:integer):real;
var i:integer; max:real;
begin
max:=a[1];
for i:=1 to n do
if(a[i]>max) then max:=a[i];
findMax:=max;
end;
begin
formandprint(a,n);
x:=sred(a,n);
max:=findMax(a,n);
writeln('Максимальное значение ', max);
writeln('Среднее значение ',x);
for i:=1 to n do
if(i=n)and(a[i]=max)then a[1]:=x
else if(a[i]=max)then a[i+1]:=x;
write('Результат: ');
for i:=1 to n do
write(a[i]:2);
writeln();
end.
Объяснение кода листинга программы
- Объявлены переменные: a (массив), n (количество элементов в массиве), i (номер элемента), x (среднее значение), max (максимальное значение).
- Вывод сообщения о количестве элементов и считывание этого количества.
- Заполнение массива случайными значениями.
- Вывод исходного массива.
- Вычисление среднего значения элементов массива.
- Вычисление максимального значения элементов массива.
- Нахождение индекса максимального значения.
- Замена значения на среднее значение по всем элементам массива.
- Вывод нового массива.