评测机不太正常?

P1307 [NOIP2011 普及组] 数字反转

jiaangk @ 2016-09-29 22:23:49

var i,j:integer;
a:array[1..20]of char;
begin
  i:=0;
  while not eoln do
    begin
      inc(i);
      read(a[i]);
    end;
  while a[1]='0' do begin for j:=1 to i do a[j]:=a[j+1]; i:=i-1; end;
  if a[1]='-' then begin i:=i-1; write('-'); for j:=1 to i do a[j]:=a[j+1]; if a[i]='0' then i:=i-1;end;
  for j:=i downto 1 do write(a[j]);
end.

by Mr张 @ 2016-09-29 23:25:01

var i,j,w:integer;
a:array[1..20]of char;
begin
  i:=0;
  while not eoln do
    begin
      inc(i);
      read(a[i]);
    end;
    w:=1;{第一个数的位置,默认为1}
    if a[1]='-' then begin w:=2;write('-');end;{如果的一个字符是负号,则第一个数的位置(w)后移一位}
    while a[i]='0' do dec(i);{从后往前找第一个不为零的数的位置}
    for j:=i downto w do write(a[j]);{倒着输出}
end.
ps:你的判断语句太麻烦了

by kkksc03 @ 2016-09-30 01:38:24

历史的无数经验告诉我们,只有不正常的代或数据,没有不正常的评测机。尤其是不正常的代码。


by Lucas @ 2016-10-03 21:41:14

可用string


|