那么它的作用是将随机值存储在31-58的数组元素中,然后将它们加起来并取平均值,然后我只是将它们显示出来。
我的问题是:我怎么能把用于给每天随机数给出一天的数组来自31-58(2月28日)并存储到第二个数组(工作日[ ])。那么在程序的最后我可以显示我想要的日期名称。
和我的代码看起来像。(这只是一个剪辑)
double [] anArray = new double[366];//Keep track of all the days in the year
String [] weekday = new String[366];//I hope to store the day names in this array
String days[]={"monday","tuesday","wednesday","thursday",
"friday","saturday","sunday"};
//---each letter is 0 to start each new month at monday---
int a=0;int b=0;int c=0;int d=0;int e=0;int f=0;int g=0;int h=0;int i=0;
int j=0;int k=0;int l=0;//Days counter
//--These start at 1 to start each new month on the 1st
int jandays=1;int febdays=1;int mardays=1;int aprdays=1;int maydays=1;int jundays=1;
int juldays=1;int augdays=1;int septdays=1;int octdays=1;int novdays=1;int decdays=1;
//Temperatures for February
for(int feb=31;feb <= 58;feb++){
anArray[feb]=(int)(26 + Math.random() * (40-26+1));
//System.out.println(days[b++ %7] + " january "+ (febdays++) +" at "+ anArray[feb]+" degrees"); // This is just testing to see if everything checks out.
febtotal += anArray[feb];
}
febavg= febtotal/31;
System.out.printf("The Average temperature in February: "+"%.2f",febavg);
System.out.println("");
地狱我要求的实际上有点让我感到困惑o.o.
答案 0 :(得分:0)
如果您发现自己处理了许多不同的array
类型,那么最好是一口气,并考虑对象。
public class WeekDay {
private int number;
private String name;
public WeekDay(int number, String name) {
// Your constructor here.
}
/** GETTERS AND SETTERS **/
}
然后你创建一个List
来包含它们。
List<WeekDay> weekDays = new ArrayList<WeekDay>();
对WeekDay
个对象进行平均后,您可以循环浏览每个对象,然后拨打getName()
(您需要添加此内容)以返回当天的名字。这提供了更清晰,更易于管理和更易于呈现的代码,它将帮助您更有效地概念化您的目标。老实说,OOP在复杂情况下非常棒。
修改
这里的诀窍是将index
映射到日期名称。我们假设你有一个像这样的阵列..
[0] = 0
[1] = 0
.
.
.
[34] = 3
[35] = 9
.
.
.
[62] = 7
[63] = 0
您的号码在34
和62
之间。这些值需要映射到几天,所以让我们从制作方法开始。
public String[] mapDays(int[] dayNumbers, int startNumber, int endNumber) {
// Your code in here.
}
您传入包含所有数字的数组,并在月份的数字开始和结束时传入。然后,你要进行一些检查。
// First, you make a new array.
String[] dayNames = new String[dayNumbers.length];
for(int x = startNumber; x <= endNumber; x++) {
// You now need to map the value of x, to the week day name.
}