一个用来存放2001年7月和8月份天气情况的多维数组,用来表示每月的每一天的最高温度和最低温。利用这些信息编写一个程序,通过交互式输入每个元素的高温和低温,然后满足以下用户需求:
a、可以查询任何一天的高温和低温。
b、某一个月的高温和低温的平均值。
c、最高温所在的月和日
d、最低温所在的月和日
天气的数组的值,可以用随机数有源代码就好
a、可以查询任何一天的高温和低温。
b、某一个月的高温和低温的平均值。
c、最高温所在的月和日
d、最低温所在的月和日
天气的数组的值,可以用随机数有源代码就好
用一个map多好,什么都有了
下面说下用数组做的基本思路:
数组
第一层 是月
第二层是 日
第三层是 两个数字(温度)
用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();其实这样做也很简单,因为日期都可以直接做成数组的下标,这样的效率比较高。但是数据只是保持在内存中,数据无法保存到磁盘中,要保持在磁盘中需要考虑其他的办法!