Задать вопрос
15 августа, 03:22

Помогите откорректировать середину программы. Необходимо найти сумму элементов массива, расположенных между первым и вторым положительными элементами.

Моя программа:

var a:array[1 ... 100]of real;

i, n, k, p:integer;

s:real;

begin

assign (input,'input. txt');

assign (output,'output. txt');

reset (input);

rewrite (output);

readln (n);

for i:=1 to n do read (a[i]);

i:=1;

while (i<=n) and (a[i]<=0) do i:=i+1;

if i>n then writeln ('0')

else begin

k:=i;

i:=n;

while (i>=1) and (a[i]<=0) do i:=i-1;

if i<1 then writeln ('0')

else begin

for i:=k+1to p-1 do s:=s+a[i];

writeln (s:0:3);

end;

end;

close (input);

close (output);

end.

+1
Ответы (1)
  1. 15 августа, 06:06
    0
    readln (n);

    for i : = 1 to n do

    read (a[i]);

    i : = 1;

    while (i < = n) and (a[i] < = 0) do

    i : = i + 1;

    if i > n then writeln ('0')

    else

    begin

    k : = i;

    i : = i + 1;

    while (i < = n) and (a[i] < = 0) do

    i : = i + 1;

    if i > n then writeln ('0')

    else

    begin

    p : = i;

    for i : = k + 1 to p - 1 do

    s : = s + a[i];

    writeln (s:0:3);

    end;

    end;

    Что я сделал: после нахождения первого элемента не надо идти в конец и с конца перебирать в другую сторону. Надо просто продолжить в том же направлении с того же места. И надо не забыть найденное значение сохранить в P - у Вас она вовсе не инициализировалась.
Знаешь ответ?
Не уверен в ответе?
Найди верный ответ на вопрос ✅ «Помогите откорректировать середину программы. Необходимо найти сумму элементов массива, расположенных между первым и вторым положительными ...» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.
Искать другие ответы