PASCAL题目求助

来源:百度知道 编辑:UC知道 时间:2024/05/18 06:19:41
var sss:array[1..366]of boolean;
max:longint;
n,month,day,i,k,j:integer;

begin
assign(input,'heaven.in');reset(input);
assign(output,'heaven.out');rewrite(output);
fillchar(sss,sizeof(sss),true);
readln(n);
for i:=1 to n do
begin
readln(month,day);
for j:=1 to month-1 do
case j of
1,3,5,7,8,10,12:k:=k+31;
4,6,9,11:k:=k+30;
2:k:=k+29;
end;
k:=k+day;
sss[k]:=false;
k:=0;
end;

for i:=1 to 366 do
if sss[i] then begin k:=k+1;
if k>max then max:=k;
end else k:=0;
max:=round((max*24*60*60)/366);
writeln(max);
close(input);close(output);

end.

谁能告诉我每一步的具体意思?
特别是
k:=k+day;
sss[k]:=false;
k:=0;
end;
到天宫做客
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:50

for i:=1 to n do
begin
readln(month,day);
for j:=1 to month-1 do
case j of
1,3,5,7,8,10,12:k:=k+31;
4,6,9,11:k:=k+30;
2:k:=k+29;
end;
k:=k+day;
sss[k]:=false;
k:=0;
end;
这一段的意思是读入月和日,求出是一年中的第几天

其中你选出的那一段是把这个第几天所对应的boolean值赋为false

而后面那段还是得借助题目看

var  sss:array[1..366]of boolean;

     max:longint;

     n,month,day,i,k,j:integer;

begin

  assign(input,'heaven.in');reset(input);

  assign(output,'heaven.out');rewrite(output); {建立输入输出文件}

  fillchar(sss,sizeof(sss),true);  {把SSS赋初值为零}

  readln(n);   {读入n是一个非负整数 N,表示4000年中必须呆在人间的天数}

  for i:=1 to n do   

  begin

  readln(month,day);