I take into account your message and correct code. But it`s still WA:
[pascal]...
if s='' then begin writeln(l); continue; end;
if (s[1]='e') or (s[1]='E') then delete(s, 1, 1)
else begin writeln(i); continue; end;
f:=true;
if (s[1]='-') or (s[1]='+') then delete(s, 1, 1);
if s='' then begin writeln(i); continue; end;
for n:=1 to length(s) do if not ((s[n]>='0') and (s[n]<='9')) then f:=false;
if f then writeln(l) else writeln(i);
end;
[/pascal]
And Output
Code: Select all
123.456+789 is illegal.
123.456 is legal.
123.456e+789 is legal.
123.456E-789 is legal.
123.456e is illegal.
123.456+ is illegal.
123.456E- is illegal.
123e456 is legal.
123E+456 is legal.
123.e456 is illegal.
123.E-456 is illegal.
+123.e456 is illegal.
-123e456 is legal.
+123e-456 is legal.
+ is illegal.
+e is illegal.
e123 is illegal.
e-12 is illegal.
-e123 is illegal.
+E+123 is illegal.
