Re: Почему моя программа выдаёт неправельный ответ на 6 вопрос?
program p1;
type tabel=array[-100..100] of byte;
var r,eror,s,a,c,i,num,b:integer; n,pr:string; x:tabel;
procedure insertare(var t:tabel; f:string; p:integer);
var q,e,i:integer;
begin
for i:=1 to length(f) do
begin
s:=0;
val(f[length(f)-i+1],q,e);
if t[i+p-1]+q+s<=9 then begin t[i+p-1]:=t[-1+i+p]+q+s; s:=0; end
else begin t[i+p-1]:=t[i+p-1]+q+s-10; s:=1; end;
end;
while s<>0 do begin
inc(i);
if t[i+p-1]+s<=9 then begin t[i+p-1]:=t[i+p-1]+s; s:=0; end
else begin t[i+p-1]:=t[i+p-1]+s-10; s:=1; end;
end;
end;
begin
s:=0;
for i:=-100 to 100 do x[i]:=0;
readln(num);
for i:=1 to num do
begin
readln(n); a:=pos('e',n);
val(copy(n,pos('e',n)+1,length(n)),b,eror);
if pos('.',n)<>0 then begin
pr:=copy(n,1,pos('.',n)-1);
insertare(x,pr,b);
pr:=copy(n,pos('.',n)+1,a-pos('.',n)-1);
insertare(x,pr,b-(a-pos('.',n)-1));
end else
begin
pr:=copy(n,1,pos('e',n)-1);
insertare(x,pr,b);
end;
end;
for i:=100 downto -100 do
if x[i]<>0 then if x[i-20]>5 then insertare(x,'1',i-19);
for i:=100 downto -100 do
if x[i]<>0 then begin
write(x[i],'.');
for c:=i-1 downto i-19 do
write(x[c]);
write('e');
if i<>0 then write(i);
break;
end;
readln;
end.
Why, test please and tell me why it don't work