Задан одномерный массив A(N) (N<=60). Посчитать сумму элементов находящихся между максимальным и минимальным элементами. Результат вывести на печать.
Program lll;
var
a:array [1..60] of integer;
n,i,max,min,s:real;
begin
for i:=1 to 60 do
begin
write ('N=',i,':');
readln (a[i]);
end;
max:=1;
min:=1;
for i:=1 to 60 do
begin
if a [max]<a[i] then max:=i;
if a [min]>a[i] then min:=i;
end;
if min>max then
begin
i:=max;
max:=min;
min:=i;
end;
for i:=min to max do
S:=????????????????
writeln ('S=", s);
readln;
end.
М | Просьба использовать теги при публикации кода! Исправлено. Lapp |
Не слишком ли много памяти для таких переменных n,i,max,min
Не вижу инициализации S ну и должно следущее
S:=S+a[i];
.
Program Lob_3;
Var
A:array [1..60] of integer;
i,max,min,s,n, imin, imax:integer;
BEGIN
write ('Введите число N=');
readln (A[i]);
for i:=1 to 5 do
writeln (A[i]);
max:=A[1];
imax:=1;
for i:=1 to 5 do
begin
if A[i]>max then
max:=A[i];
imax:=i
end;
min:=A[i];
imin:=1;
for i:=1 to 5 do
begin
if A[i]<min then
min:=A[i];
imin:=i;
end;
for i:=imin to imax do
begin
if ?????????? then
S:=S+A[i]
end;
writeln ('S=', s);
END.
Program Lob_3;
Var
A:array [1..60] of integer;
i,max,min,s,n, imin, imax:integer;
BEGIN
write ('Введите число N=');
readln (A[i]); { <- просишь ввести число N - а вводишь что????}
for i:=1 to 5 do {<- тут цикл, видимо должен быть не до 5 а как раз до неведённого тобою N}
writeln (A[i]); {<- тут выводишь, ещё невведенные элементы массива на экран - ненадо так делать }
{Не ввел элементы массива, а начинаешь среди них искать максимальный и минимальный - нехорошо.}
max:=A[1];
imax:=1;
for i:=1 to 5 do {<- тут цикл, видимо должен быть не до 5 а как раз до неведённого тобою N}
begin
if A[i]>max then
max:=A[i];
imax:=i {<- таким образом ты никогда не найдешь НОМЕР максимального элемента....надо после IF использовать begin...end}
end;
min:=A[i]; {<- почему индекс i? а не единица????}
imin:=1;
for i:=1 to 5 do {<- опять цикл до пяти, а не до N}
begin
if A[i]<min then
min:=A[i];
imin:=i; {<- писАл уже, скобки расставь операторные}
end;
for i:=imin to imax do
begin
if ?????????? then {<- а зачем тут это воообще???}
S:=S+A[i]
end;
writeln ('S=', s);
END.
ага. спасибо. замечания учёл. программа пашет! СПАСИБО!