【问题标题】:Java: sum and median for an array of numbersJava:数字数组的总和和中位数
【发布时间】:2016-05-17 14:00:06
【问题描述】:

你将如何编写均值和总和的构造函数和方法 为了: 一个数字数组,这些数字是 双数据[] = {3.0, 15.0, 7.0, 27.0}?

谢谢

【问题讨论】:

  • 到目前为止你做了哪些努力?
  • public class Stats { public static void main(String[] args) { double data[]={3.0, 15.0, 7.0, 27.0}; } 双总和 = 0; for(int i: 数据); {总和+=我; System.out.println(sum); }}
  • 请在您的问题中发布代码。只需编辑它。
  • 我建议您在适当缩进后将此代码发布在问题本身中
  • 你不需要一个带有构造函数的类来完成这样一个微不足道的任务,只需要坚持静态方法。

标签: java arrays sum mean


【解决方案1】:

从作业中退后一步,看看它真正在问你什么。

首先:数组的总和是该数组中的所有项目相加。 解决方案:循环遍历每个数组项,并将其添加到total 变量中;

第二:数组的中位数是每个数组项的总和除以数组的长度。 解决方案:使用您的计算总和方法得到总和,并将其除以数组的长度。 示例:

public class Stats {

    public static void main(String[] args) {
        double data[] = {3.0, 15.0, 7.0, 27.0};
        System.out.printf("Sum: %d", getSum(data));
        System.out.printf("Median: %d", getMedian(data));
    }

    public static double getMedian(double[] input) {
        return getSum(input) / input.length;
    }

    public static double getSum(double[] input) {
        double total = 0;
        for (double d : input) {
            total += d;
        }
        return total;
    }
}

如果您想采用更面向对象的方法,可以将双精度数组存储在一个单独的类中,并使用辅助方法来执行计算,如下所示:

public class Stats {

    public static void main(String[] args) {
        double data[] = {3.0, 15.0, 7.0, 27.0};
        DoubleArrayUtilities utilities = new DoubleArrayUtilities(data));
        System.out.printf("Sum: %d", utilities.getSum());
        System.out.printf("Median: %d", utilities.getMedian());
    }

}

public class DoubleArrayUtilities {

    private double[] data;

    public DoubleArrayUtilities(double[] data) {
        this.data = data;
    }

    public double getMedian() {
        return getSum() / data.length;
    }

    public double getSum() {
        double total = 0;
        for (double d : data) {
            total += d;
        }
        return total;
    }
}

【讨论】:

  • 提问者没有努力解决的任何问题;不应该回答。
  • 有些人真的不知道从哪里开始做作业。我们都去过那里,如果帮助他们需要我发布一个可编译的示例,我很乐意提供帮助。
  • 我知道你想从哪里来。但是迟到了,太多的学生在 SO 上分享他们的作业问题,却没有给出任何关于如何解决它的想法。从长远来看,即如果他们希望稍后再编码,那么这可能会伤害他们。我们至少需要让他们思考,对于这样的问题,我们可以指导他们使用 cmets 部分的想法,而不是分享会让他们更懒惰的实际答案。
  • 很抱歉,如果我表现得很懒惰,我只是不知道从哪里开始,所以我在寻求任何人的帮助。
  • 也非常感谢您的回答!真的很有帮助。
猜你喜欢
  • 2013-06-23
  • 2023-02-14
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 2018-03-23
  • 2015-12-06
  • 2022-12-03
相关资源
最近更新 更多