Откорректировать программу - паскаль. структура программы как у меня. условие: дан одномерный массив, состоящий из вещественных элементов. найти сумму элементов массива, расположенных до последнего положительного элемента. 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.

Leg1oner Leg1oner    3   28.05.2019 16:10    0

Ответы
Абдешова98 Абдешова98  26.06.2020 09:26
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.
ПОКАЗАТЬ ОТВЕТЫ
Вика310387 Вика310387  26.06.2020 09:26
строку
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-ого элемента массива, и может выдаваться ошибка)
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика