因此,要做的是将随机值存储在31-58之间的数组元素中,然后将它们总计并求平均值,然后我将它们简单地显示出来。

我的问题是: 我该如何使用days数组,该数组用于为31-58(2月的28天)中的每个随机数赋予一天,并将其存储到第二个数组(weekday [])。在程序的最后,如果需要,我可以显示日期名称。

和我的代码看起来像。(这只是一个片段)

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("");

地狱,我要的实际上是让我困惑

===============>>#1 票数: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() ,然后调用getName() (您需要添加此名称以返回日期名称。 这提供了更简洁,更易于管理和更易于使用的代码,并且将帮助您更有效地概念化目标。 老实说,在复杂情况下,OOP非常棒。

编辑

这里的技巧是将index映射到日期名称。 假设您有一个像这样的数组。

 [0] = 0
 [1] = 0
 .
 .
 .
 [34] = 3
 [35] = 9
 .
 .
 .
 [62] = 7
 [63] = 0

您的电话号码在3462之间。 这些值需要映射到天数,因此让我们从创建方法开始。

 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.

 }

  ask by user3390848 translate from so

未解决问题?本站智能推荐:

关注微信公众号