Дана последовательность из n различных чисел.
Найти сумму её членов, расположенных между максимальным и минимальным значениями
в сумму включить и оба этих числа)
Наша программа:
const n=10;
var
a:array[1..n] of integer;
i, imax, imin: byte;
max, min, sum: integer;
begin
for i:=1 to n do begin
a[i]:=random(100)-50;
write(a[i]:4)
end;
writeln;
max:=-10000; min:=10000; sum:=0;
for i:=1 to n do begin
if a[i]>max then begin max:=a[i]; imax:=i end;
if a[i]
{writeln('Максимальное значение = ',max:2, ', порядковый номер = ',imax:2);
writeln('Минимальное значение = ',min:2, ', порядковый номер = ',imin:2);}
if imax>imin then
for i:=imin to imax do
sum:=sum+a[i]
else for i:=imin downto imax do
sum:=sum+a[i];
writeln(' Сумма элементов = ',sum)
end.
Суть вопроса: учитель пишет замечание:
в сумме ошибка:
for i:=imin downto imax do должно быть for i:=imax to imin do
С замечанием я согласна, так тоже можно, но наш то вариант чем хуже, если программа работает правильно?
