Помогите откорректировать программу - Паскаль. Структура программы как у меня.Условие: Дан одномерный массив, состоящий из вещественных элементов. Найти сумму элементов массива, расположенных до последнего положительного элемен...

Помогите откорректировать программу - Паскаль. Структура программы как у меня. Условие: Дан одномерный массив, состоящий из вещественных элементов. Найти сумму элементов массива, расположенных до последнего положительного элемента. program k; var a:array[1..100] of real; i,n,p,v: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>=0) and (a[i]<=0) do i:=i-1; if i<0 then writeln(0) else p:=i; s:=0; for i:=1 to p-1 do s:=s+a[i]; writeln(s:0:0); close (input); close (output); end.
Гость
Ответ(ы) на вопрос:
Гость
var a:array[1..100] of real; i,n,last:integer; s:real; input,output:text; begin assign (input,'input.txt'); assign (output,'output.txt'); reset (input); rewrite (output); readln(n); for i:=1 to n do begin    read(input,a[i]);    if (a[i] >= 0) then last:=i;end; for i:=1 to last-1 dos:=s+a[i];  write(output,s:5:3); close (input); close (output); end.
Гость
строку i:=1; нужно поменять на i:=n; (раз уж вы начинаете считать с конца) а строки while (i>=0) and (a[i]<=0) do i:=i-1; if i<0 then writeln(0) на while (i>0) and (a[i]<=0) do i:=i-1; if i=0 then writeln(0) (поскольку нет 0-ого элемента массива, и может выдаваться ошибка)
Не нашли ответ?
Ответить на вопрос
Похожие вопросы