这题怎么错了?????????pascal程序。。。高手说一下原因。。我是菜鸟啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!

如题所述

你的错误有好几处:

1、变量声明写错了;

按你的意思,应该输入两个变量,一个是年份(看样子你是想直接将年份设为10000?),一个是月份,那么变量声明可以写成:

var a:1..12;

      c:integer;

 

2、程序部分语句错误;

如果年份、月份需要输入可写成:

read(a,c);

 

如果只输入月份,年份设为10000,可写成:

read(a);

c:=10000;

 

注意,赋值符号是“:=”,而不是“:”。

 

此外,在判断季节的语句中,应该是用or(或)不能用and(和)

if month=3 or month=4 or month=5 then write('spring');

同样,在判断天数语句中,也是应该用or,不能用and.

 

但是,用case情况语句,就更简洁了。

下面是我给你重编的程序。

---------------------------------

 

 

program date;
  var  year: integer;
   month: 1..12;
       days: integer;
     season: string;
begin
 read(year,month);  //输入年,月

 case month of      //判断天数
  1,3,5,7,8,10,12: days:=31;
         4,6,9,11: days:=30;
                2: if (year mod 4=0) and (year mod 100<>0) or (year mod 400=0)
                 then days:=29
                else days:=28;
 end;

 case month of      //判断季节
    3,4,5: season:='spring';
      6,7,8: season:='summer';
    9,10,11: season:='autumn';
     12,1,2: season:='winter';
 end;

 writeln(season,' ',days);
end.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-15
在我印象中pascal的变量定义不是这样的吧。
var 变量名:类型;应该是这样的吧。从报错看是第4行和第3行之间少了;
有差不多10年没看过Pascal了。不知道记得对不对追问

那怎么写呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

追答

var a,b,c:integer;
begin
c:=10000;

a是你自己输入的,b是算出来的。不用初始化赋值

追问

可是还不成功。。。!!???

第2个回答  2013-05-15
下面的人错了,你第四排没有分号当然不行。
第3个回答  2013-05-15
'a,b:1..12'那儿少了一个分号追问

我试了也不行!!!!!!!!?????

追答

c的赋值应该用":="