人才请进

各位大虾 为什么 我的程序 提交后 老是显示 程序输出比正确答案长

?????

是什么原因??

program dad;

var

a:array [1..12]of integer;

y,m1,m,d,i,n,j:longint;

s:string;

begin

readln(n);

a[1]:=31;a[2]:=28;a[3]:=31;a[4]:=30;a[5]:=31;a[6]:=30;a[7]:=31;a[8]:=31;a[9]:=30;a[10]:=31;a[11]:=30;a[12]:=31;

for i:=1 to n do begin

readln(s);

y:=(ord(s[1])-ord('0'))*1000;

y:=y+(ord(s[2])-ord('0'))*100;

y:=y+(ord(s[3])-ord('0'))*10;

y:=y+(ord(s[4])-ord('0'))*1;

if ((y mod 4=0)and(y mod 1000))or(y mod 400=0) then a[2]:=29;

if s[7]=' ' then m:=(ord(s[6])-ord('0'))*1 else begin

m:=(ord(s[6])-ord('0'))*10;

m:=m+(ord(s[7])-ord('0'))*1;

end;

if s[7]=' ' then begin if length(s)=8 then d:=(ord(s[8])-ord('0'))*1

else begin d:=(ord(s[8])-ord('0'))*10;d:=(ord(s[9])-ord('0'))*10;end;end

else begin if length(s)=9 then d:=(ord(s[9])-ord('0'))*1

else begin d:=(ord(s[9])-ord('0'))*10;d:=d+(ord(s[10])-ord('0'))*1;end;end;

y:=2001-y;

m1:=m;

if m>11 then begin m:=m-1;y:=y-1;end else m:=11-m;

m:=m+12*y;

if m0 then d:=a[m1]-d+3 else d:=4-d;

for j:=1 to m-1 do d:=d+a[m1+j];

if in then begin if odd(m+d) then writeln('YES') else writeln('NO');end

else begin if odd(m+d) then write('YES') else write('NO');end;

end;

end.

4 条评论

  • @ 2013-10-03 19:01:02

    program dad;
    这是什么

  • @ 2013-10-03 19:00:09

    write('YES') else write('NO');改为writeln

  • @ 2013-07-31 21:58:11

    write('YES') else write('NO');改为writeln

  • @ 2009-04-27 16:36:13

    程序有问题

    你的程序有问题!很大的问题!!

    这个问题由于太简单了,我就不说了,你自己看吧。

  • 1

信息

ID
1004
难度
5
分类
博弈论 点击显示
标签
(无)
递交数
5152
已通过
1801
通过率
35%
被复制
31
上传者