【问题标题】:Java Multi-dimensional Array AverageJava多维数组平均
【发布时间】:2015-11-23 23:56:56
【问题描述】:

基本上我有一个数组,其中包含 1907-2007 年的降雨数据(例如 - 长度 100)。 数组的每个元素都包含另一个数组,其中包含该年每个月的降雨量数据。

我的问题是,我将如何计算用户指定年份的平均降雨量? 这是我目前所拥有的:

public double calculateAverageForYear(int year){

double sum = 0.0;

for (int i=0;i<Years.length;i++){ 
sum = sum += Years[i].calculateAvgRain();
}
sum = sum/12;
return sum;
}

calculateAvgRain 在另一个类中定义,就我的测试而言是正确的。 感谢您的帮助

【问题讨论】:

  • Years[i].calculateAvgRain() 的签名是什么,它接受求平均值的东西,还是Year 类的方法?
  • 这段代码不起作用吗?如果不是,请描述问题。
  • @SamTebbs33 预期答案与我的实际答案相差 10 个单位。
  • @Anly 是另一个类的方法,用来计算平均降雨量
  • @AcidMicrowave 很清楚。令我困扰的是,您在问一个问题,而相同的方法应该完全按照您的意愿行事。既然你在问,我认为它没有。那是什么?

标签: java arrays function


【解决方案1】:

我假设用户定义的参数int year 不是years 数组的实际索引。如果它是实际年份数,则必须根据数组中的第一年对其进行转换。它应该像 int index = year - 1907 一样简单,假设 1907 年是索引为 0 的元素。

如果您使用Years[i].calculateAvgRain() 的方法有效,那么您可能只需要调整i(如上所述)。那你就不需要循环了。

既然您在问一个问题,那么问题可能是其他问题。 我假设您有 100x12 数组,其中行为年,列中为月雨数据。

public double calculateAverage(int year) {
    int index = year - 1907; //extract 1907 into a CONSTANT or some other variable if possible

    double sum = 0.0;
    for (double monthRain : years[index]) { //is `years` visible?
        sum += monthRain;
    }

    return sum / years[index].length; //`years[index].length` should be 12, but maybe you have a blank month data?
}

请纠正我并更详细地澄清问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多