Подсчитать сумму элементов, расположенных между максимальным и минимальным элементами. если максимальный элемент встречается позже минимального, то выдать сообщение об этом.
//PascalABC.Net 3.0, сборка 1064 const n=20; var a:array[1..n] of integer; i,imax,imin:integer; s:longint; begin Randomize; Writeln('Исходный ряд значений'); imax:=1; imin:=1; for i:=1 to n do begin a[i]:=Random(51)-25; Write(a[i],' '); if a[i]>a[imax] then imax:=i else if a[i]<a[imin] then imin:=i end; Writeln; if imax>imin then Writeln('Максимальный элемент встретился позже минимального') else begin s:=0; for i:=imax+1 to imin-1 do s:=s+a[i]; Writeln('Сумма элементов между максимальным и минимальным значением ',s) end end.
Тестовое решение: Исходный ряд значений 10 -3 9 5 20 10 6 2 -19 -19 6 -24 -7 -1 23 11 -8 -16 -14 -25 Сумма элементов между максимальным и минимальным значением -27
shelep19789
19.09.2022
Var a: array[0..10] of integer; i, n, k: integer; // b: array[1..4, 1..4] of integer;
begin Println(); Println(1); for i := 0 to 10 do A[i] := i + 1; PrintLn(a); Println(); for i := 1 to 10 do begin A[i] := A[i - 1]; PrintLn(a); end;
Println(); Println(2); for i := 0 to 10 do A[i] := i + 1; PrintLn(a); Println(); for i := 10 downto 0 do begin A[i] := A[10 - i]; PrintLn(a); end; end.
Все элементы будут равны единице. Сначала они будут заполнены значением, большим своего индекса на 1, а потом каждому элементу, начиная со второго (который А[1]) будет присвоено значение предыдущего элемента и 1 распространится везде.
Для проверки была написана программа с отладочной выдачей.
var a:array[0..10] of integer; i:integer; begin for i:=0 to 10 do begin a[i]:=i+1; Write(a[i],' ') end; Writeln; Write(a[0],' '); for i:=1 to 10 do begin a[i]:=a[i-1]; Write(a[i],' ') end end.
Результаты
1 2 3 4 5 6 7 8 9 10 11 1 1 1 1 1 1 1 1 1 1 1
ответ: 3)
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Подсчитать сумму элементов, расположенных между максимальным и минимальным элементами. если максимальный элемент встречается позже минимального, то выдать сообщение об этом.
const
n=20;
var
a:array[1..n] of integer;
i,imax,imin:integer;
s:longint;
begin
Randomize;
Writeln('Исходный ряд значений');
imax:=1; imin:=1;
for i:=1 to n do begin
a[i]:=Random(51)-25; Write(a[i],' ');
if a[i]>a[imax] then imax:=i
else
if a[i]<a[imin] then imin:=i
end;
Writeln;
if imax>imin then
Writeln('Максимальный элемент встретился позже минимального')
else begin
s:=0;
for i:=imax+1 to imin-1 do s:=s+a[i];
Writeln('Сумма элементов между максимальным и минимальным значением ',s)
end
end.
Тестовое решение:
Исходный ряд значений
10 -3 9 5 20 10 6 2 -19 -19 6 -24 -7 -1 23 11 -8 -16 -14 -25
Сумма элементов между максимальным и минимальным значением -27