A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 孙茜茜 于 2013-5-20 08:27 编辑

才学了一天视频,写这段思路基本靠当年学c的遗留记忆
s2+=monthday;    这句提示找不到monthday符号



class Fri13
{
       void main(String[] args)
        {
                int year=1900,month=1,s1;
                int[] result={0,0,0,0,0,0,0};
                int week,i,k;
                for (;year<2300;year+=1)
                {        if (year%4==0)
                                {int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};}
                        else    {int[] monthday={0,31,29,31,30,31,30,31,31,30,31,30,31};}
                        for (;month<13;month+=1)
                        {int s2=0;
                         s1=365*(year-1900)-(year/4-1);
                                for (i=0;i<month-1;i+=1)
                                {
                                 s2+=monthday;
                                }
                         week=(s1+s2)%7;
                         result[week-1]+=1;
                        }
                }
        System.out.println(result[0]+","+result[1]+","+result[2]+","+result[3]+","+result[4]+","+result[5]+","+result[6]);
        }
}

1.PNG (3.31 KB, 下载次数: 0)

1.PNG

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

8 个回复

正序浏览
楼主你好  如果问题已经解决  那么把帖子的类型改为“已解决”
回复 使用道具 举报
曾大鹏 发表于 2013-5-19 21:04
你这代码好搓啊

if (year%4==0)

承认很挫。。。。
做题之前还想着把日期弄一个日历型的二维数组,在一个列里面找13的个数,受matlab的启发,无奈不会做日历。
先照你说的改
回复 使用道具 举报
本帖最后由 孙茜茜 于 2013-5-19 21:42 编辑
王九日 发表于 2013-5-19 21:05
monday是数组 s2是int类型数据,这么赋值我有点看不懂

不知道为什么,编辑了好几次改的东西都存不下来,本意是s2加上monthday里面的一个值

点评

什么挫不挫,好好学着  发表于 2013-5-28 18:28
回复 使用道具 举报
本帖最后由 薛淑凯 于 2013-5-19 21:25 编辑

占楼先。。
for (;year<2300;year+=1){      
                        if (year%4==0)
                        {int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};}  //monthday是这个语句的局部变量,后边的for语句无法访问,但是变量声明放到外部的for循环也不行,因为数组常量只能在初始化中使用。可能要用到集合,还没学到集合的具体知识,不敢胡乱猜测,请高手来指正。还有java里的main函数是固定格式的  public static void main(String[] args){}                                                                                                                        
                    else   
                            {int[] monthday={0,31,29,31,30,31,30,31,31,30,31,30,31};}
                    for (;month<13;month+=1){
                                int s2=0;
                                s1=365*(year-1900)-(year/4-1);
                            for (i=0;i<month-1;i+=1){
                                 s2+=monthday;
                            }
                         week=(s1+s2)%7;
                         result[week-1]+=1;
                        }
                }
回复 使用道具 举报
局部变量外界不能访问。
回复 使用道具 举报
monday是数组 s2是int类型数据,这么赋值我有点看不懂
回复 使用道具 举报
你这代码好搓啊

if (year%4==0)
  {int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};}
  else    {int[] monthday={0,31,29,31,30,31,30,31,31,30,31,30,31};}
你这定义的monthday数组都是局部变量

到你后面for循环的时候 就没有这个数组了
所以在前面定义一个nt[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};
然后根据润年来更改2月的天数
回复 使用道具 举报
怎么重新编辑了无数次里面的东西都保存不上啊,二楼再发一次,无视一楼的文字吧,图可以看

才学了一天视频,写这段思路基本靠当年学c的遗留记忆
s2+=monthday[i];    这句提示找不到monthday符号



class Fri13
{
       void main(String[] args)
        {
                int year=1900,month=1,s1;
                int[] result={0,0,0,0,0,0,0};
                int week,i,k;
                for (;year<2300;year+=1)
                {        if (year%4==0)
                                {int[] monthday={0,31,28,31,30,31,30,31,31,30,31,30,31};}
                        else    {int[] monthday={0,31,29,31,30,31,30,31,31,30,31,30,31};}
                        for (;month<13;month+=1)
                        {int s2=0;
                         s1=365*(year-1900)-(year/4-1);
                                for (i=0;i<month-1;i+=1)
                                {
                                 s2+=monthday[i];
                                }
                         week=(s1+s2)%7;
                         result[week-1]+=1;
                        }
                }
        System.out.println(result[0]+","+result[1]+","+result[2]+","+result[3]+","+result[4]+","+result[5]+","+result[6]);
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马