注册 登录
编程论坛 Delphi论坛

谁能帮我看看这段tp那里出错了

董翔宇 发布于 2008-06-07 21:14, 1330 次点击
program work06;
var n,y,r:integer;
begin
write('please input the year');readln(n);
write('please input the month');readln(y);
case r of
  1,3,5,7,8,10,12: r:=31;
  4,6,9,11: r:=30;
  2:begin
     if (n mod 4=0) then begin
       if (n mod 100=0)then
         begin
           if (n mod 400=0)then
              begin
                r:=31;
              end
           else
              begin
                r:=30;
              end;
         end
       else
         begin
           r:=31;
         end;
      end
     else begin
           r:=30;
          end;
   else writeln('WRONG!');
  end;
writeln('there are',r,'days in this month');
readln;
end.
4 回复
#2
董翔宇2008-06-08 13:46
拜托
#3
provoke2008-06-10 13:53
2月,平年是28天,润年是29天。而不是30或31天……
#4
董翔宇2008-06-18 16:45
program work06;
var n,y,r:integer;
begin
write('please input the year');readln(n);
write('please input the month');readln(y);
case r of
  1,3,5,7,8,10,12: r:=31;
  4,6,9,11: r:=30;
  2:begin
     if (n mod 4=0) then begin
       if (n mod 100=0)then
         begin
           if (n mod 400=0)then
              begin
                r:=29;
              end
           else
              begin
                r:=28;
              end;
         end
       else
         begin
           r:=29;
         end;
      end
     else begin
           r:=28;
          end;
   else writeln('WRONG!');
  end;
writeln('there are',r,'days in this month');
readln;
end.
改过了,可是还是提示“error in statement”
#5
provoke2008-06-18 18:33
write('please input the year');readln(n);
write('please input the month');readln(y);
case r of

需要判断的是年份,并据以为月份 r 赋值,而你判断的是什么?你的 r 似乎还没有赋值,能不错吗?

最简单的方法是直接将 r 也一并输出,调试无误后再按实际需要修改。
1