一个用来存放2001年7月和8月份天气情况的多维数组,用来表示每月的每一天的最高温度和最低温。利用这些信息编写一个程序,通过交互式输入每个元素的高温和低温,然后满足以下用户需求:
a、可以查询任何一天的高温和低温。
b、某一个月的高温和低温的平均值。
c、最高温所在的月和日
d、最低温所在的月和日
天气的数组的值,可以用随机数有源代码就好

解决方案 »

  1.   

    为什么要用多维素组?
    用一个map多好,什么都有了
      

  2.   

    当然有比数组做好的方法,比如用数据库
    下面说下用数组做的基本思路:
    数组
    第一层 是月
    第二层是 日
    第三层是 两个数字(温度)
    用script来做个例子吧
    var t = {{{-1,1月1日},{39,8月2日}} ... {{30,38},{31,37}...{34,39}}, {...},   ... }
           最低温度     最高温度                1日        2日         31日      
                最低温度日    最高温度日                  7月                     8月     其他月数组定义:
    t[1]就是1月,t[7]就是7月,t[8]就是8月
    t[1][1]就是1月1日
    t[1][1][0]就是最低温度,t[1][1][1]是最高温度另外最高气温和最低气温记录,就直接放在 t[0]吧
    t[0][0][0]是最低气温的温度 t[0][0][1]是最低气温的日期
    t[0][1][0]是最高气温的温度 t[0][1][1]是最高气温的日期
    然后就是使用方法:
    //设定某天的温度
    function sett(m,d,max,min){
      t[m][d][0] = min;
      t[m][d][1] = max;
      if (t[0][0][0] > t[m][d][0]){
        t[0][0][0] = t[m][d][0];
        t[0][0][1] = m+"月"+d+"日";
      }  
      if (t[0][0][1] < t[m][d][1]){
        t[0][1][0] = t[m][d][0];
        t[0][1][1] = m+"月"+d+"日";
      }
    }
    //取得某天最高温度
    function getmaxt_forday(m,d){
      return t[m][d][1];
    }
    //取得某天最低温度
    function getmint_forday(m,d){
      return t[m][d][0];
    }
    //取得最高温度的日期
    function getmaxt_day(){
      return t[0][1][1];
    }
    //取得最低温度的日期
    function getmint_day(){
      return t[0][0][1];
    }
    //取得最高温度
    function getmaxt(){
      return t[0][1][0];
    }
    //取得最低温度
    function getmaxt(){
      return t[0][0][0];
    }比如:
    设置7月3日的最低气温为 31℃,最高气温 39℃:sett(7,3,39,31);
    设置好一些数据后就可以进行查询,如下:
    取得8月5日的最高温度:getmaxt_forday(8,5);
    取得历史最高温度的日期:getmaxt_day();
    取得历史最高温度的温度:getmaxt();其实这样做也很简单,因为日期都可以直接做成数组的下标,这样的效率比较高。但是数据只是保持在内存中,数据无法保存到磁盘中,要保持在磁盘中需要考虑其他的办法!
     
      

  3.   

    我也觉得尽量不要用数组,java里面好的容器那么多,为什么不用?而且如果你继承java的容器来增加自己的应用,我觉得会更灵活点。map就挺好的。