在java中,数组是否有一个函数来查找sum和mean以及stdev

mbjcgjjk  于 2021-08-25  发布在  Java
关注(0)|答案(2)|浏览(342)

我对java完全陌生,无法理解数组。下面的代码是我到目前为止的代码。我不确定我的计算是否正确,因为它没有打印出任何内容。关于如何使总数正常工作,有什么建议吗?如果它能与mean或stdev联系起来呢?还是我一直在做循环?
编写一个名为“降雨”的程序,将12个月的总降雨量存储到一个双倍数组中。程序应显示以下内容:
一年的总降雨量。
月平均降雨量。
月降雨量的标准偏差。考虑一年的人口。
雨量最多的月份及其价值。如果最大值超过一个月,则只打印第一次出现的值。
降雨量最少的月份及其价值。如果最小值超过一个月,则只打印第一次出现的值。

{
    public static void main(String[] args) 
    {

        String[] monthName = {"January", "February", "March", "April", "May", "June", 

                            "July", "August", "September", "October", "November", "December"}; //declare the month

        double[] rainfallSize = {11.5, 11.2, 11.4, 0.7, 0.5, 0.1, 
                                0.1, 0.0, 1.2, 4.3, 7.9, 8.1}; // declare the rainfall size

        double Rain[] = {11.5, 11.2, 11.4, 0.7, 0.5, 0.1, 
                        0.1, 0.0, 1.2, 4.3, 7.9, 8.1};
        double Rain = 0;
        for(double i : Rain)
            {sum += i;}
    for

    (
        int i = 0; i <=11; i++
    )

    System.out.printf("Month: %s, Rainfall amount: %.1f mm \n", monthName[i], rainfallSize[i]);
    System.out.printf("Total Rainfall Yearly: \n", Rain);
    System.out.printf("Average montly Rainfall: \n");
    System.out.printf("Max Value: \n");
    System.out.printf("Min value: \n");

    }

}
pdkcd3nj

pdkcd3nj1#

问题是您的代码有很多错误。我已经修好了一些,但剩下的我相信你能修好

public class Rainfalls {
    public static void main(String[] args) {

        String[] monthName = { "January", "February", "March", "April", "May", "June",

                "July", "August", "September", "October", "November", "December" }; // declare the month

        double[] rainfallSize = { 11.5, 11.2, 11.4, 0.7, 0.5, 0.1, 0.1, 0.0, 1.2, 4.3, 7.9, 8.1 }; // declare the
                                                                                                    // rainfall size

        double total_rain = 0;
        for (double i : rainfallSize) {
            total_rain += i;
        }

        for (int i = 0; i <= 11; i++) {

            System.out.printf("Month: %s, Rainfall amount: %.1f mm \n", monthName[i], rainfallSize[i]);
        }
        // calculate average monthly rainfall
        System.out.printf("Average montly Rainfall: \n");
        System.out.printf("Total Rainfall Yearly: \n", total_rain);
        // calculate max monthly rainfall
        System.out.printf("Max Value: \n");
        // calculate min monthly rainfall
        System.out.printf("Min value: \n");

    }

}

如果你觉得这个回答有帮助,你会投票给我的答案,这样我就可以帮助其他人(在这个论坛上得到其他人的帮助)。
提前谢谢
哦,输出看起来是这样的:

Month: January, Rainfall amount: 11.5 mm 
Month: February, Rainfall amount: 11.2 mm 
Month: March, Rainfall amount: 11.4 mm 
Month: April, Rainfall amount: 0.7 mm 
Month: May, Rainfall amount: 0.5 mm 
Month: June, Rainfall amount: 0.1 mm 
Month: July, Rainfall amount: 0.1 mm 
Month: August, Rainfall amount: 0.0 mm 
Month: September, Rainfall amount: 1.2 mm 
Month: October, Rainfall amount: 4.3 mm 
Month: November, Rainfall amount: 7.9 mm 
Month: December, Rainfall amount: 8.1 mm 
Average montly Rainfall: 
Total Rainfall Yearly: 
Max Value: 
Min value:
lsmd5eda

lsmd5eda2#

在java中,数组是否有一个函数来查找sum和mean以及stdev?
据我所知,不是所有的。但是有一个类可以让你计算 count, sum, average, min, and max 指一系列的值。它被称为 DoubleSummaryStatistics 首先,声明该类的一个示例(您可以阅读javadoc以查看默认情况下这些初始值是什么)。

DoubleSummaryStatistics dss = new DoubleSummaryStatistics();

然后,只需迭代您的值,如下所示。

for (double rainFall : rainfallSize) {
          dss.accept(rainFall);
}

完成后,可以使用类的getter打印适当的值。

System.out.printf("Total Rainfall Yearly: %.2f mm%n",
        dss.getSum());
System.out.printf("Average monthly Rainfall: %.2f mm%n",
        dss.getAverage());
System.out.printf("Max Value: %.2f mm%n", dss.getMax());
System.out.printf("Min value: %.2f mm%n", dss.getMin());

印刷品

Total Rainfall Yearly: 57.00 mm
Average monthly Rainfall: 4.75 mm
Max Value: 11.50 mm
Min value: 0.00 mm

当您计算其他统计数据(如标准偏差)时(查看wiki中的各种算法),您还需要遍历数据。因此,在填充summary stats类时,使用与上面相同的循环并收集数据。

相关问题