Задать вопрос
10 сентября, 22:46

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

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

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.

+5
Ответы (1)
  1. 10 сентября, 23:55
    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 - у Вас она вовсе не инициализировалась.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Помогите откорректировать середину программы. Необходимо найти сумму элементов массива, расположенных между первым и вторым положительными ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы