帮忙看看pascal程序出了什么问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 07:40:31
原题:http://ace.delos.com/usacoprob2?a=sh1uXXPAZ57&S=friday
我的程序:{
ID:Friday_the_Thirteenth
PROG:friday
LANG:PASCAL
}
var
flag:array [1900..50000] of boolean;
a:array [1899..50000,1..12] of 1..7;
num:array [0..6] of integer;
i,j,n,m:longint;
const p:array [1..12] of integer=(31,31,28,31,30,31,30,31,31,30,31,30);
begin
assign(input,'friday.in');
assign(output,'friday.out');
reset(input);
rewrite(output);
a[1899,12]:=2;
readln(n);
n:=1900+n-1;
for i:=1900 to 50000 do
if i mod 4=0 then flag[i]:=true
else flag[i]:=false;
for i:=19 to 50 do
if i mod 4<>0 then flag[i*100]:=false;
for i:=1900 to n do
begin
if flag[i]=true then m:=29
else m:=28;

意思是帐号不存在
你在ID:后面要打自己的用户名而不要打题目的名字
题目的名字在PROG:这里会识别的
修改即可

我程序给你参考
{
ID: XXXXXX
PROG: friday
LANG: PASCAL
}
const a:array[1..12]of integer=(31,29,31,30,31,30,31,31,30,31,30,31);
var n,now,y,m,d,i:longint;tot:array[1..7]of longint;

begin
assign(input,'friday.in');reset(input);
assign(output,'friday.out');rewrite(output);
readln(n);
now:=0;
y:=1900;
m:=1;
d:=0;
while y<=1900+n-1 do begin
inc(d);inc(now);
if now>7 then now:=1;
if d>a[m] then begin inc(m);d:=1;end;
if ((y mod 4<>0)or((y mod 100=0)and(y mod 400<>0)))and(m=2)and(d>28) then begin inc(m);d:=1;end;
if m>12 then begin m:=1;inc(y);end;
if d=13 then inc(tot[now]);
end;
write(tot[6],' ',tot[7],' ');
for i:=1 to 4 do write(tot[i],' ');