Честно, не поняла ваш код вообще. Почему нет цикла? Предлагаю свое решение: 1)Cначала заполняем массив случайными числами от 2 до 5 (включительно) 2)Потом выводим его (Для проверки) 3) Потом считаем оценки. Но сначала нужно обнулить переменные( В самом начале это делали), а то получится кака (:
program N_0547847; var b, c, d, f, i:integer; a: array [1..20] of integer; begin; randomize; b:=0; c:=0; d:=0; f:=0; for i:=1 to 20 do begin a[i]:=random(4)+2; write(a[i],' '); end; writeln; for i:=1 to 20 do begin if a[i]=2 then b:=b+1; if a[i]=3 then c:=c+1; if a[i]=4 then d:=d+1; if a[i]=5 then f:=f+1; end; writeln('Двоек: ', b); writeln('Троек: ', c); writeln('Четверок: ',d); writeln('Пятерок: ',f); end.
//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