【问题标题】:printing a returned array java打印返回的数组 java
【发布时间】:2015-03-14 22:51:13
【问题描述】:

你好,这是我的第一篇文章。 如果没有在正确的部分询问,我很抱歉,但我在完成这项作业时遇到了麻烦。我应该编写一个方法,在一个一维数组中返回 5 个计算。 一旦我尝试打印它,它就会为数组的每个元素打印 0.0 的值。我相信我可能无法将我想要的值输入到返回的数组中,但我不确定。有谁知道如何解决这个问题?

Scanner input = new Scanner(System.in);
        System.out.println("Please enter 5 numbers: ");
        double [] numbers = new double[5];
        double [] answers = calculations(numbers);

        for(int i = 0; i<numbers.length; i++){
            numbers[i] = input.nextDouble();
        }

        System.out.println("the maximum of the five numbers is: " + answers[0]);
        System.out.println("the minimum of the five numbers is: " + answers[1]);
        System.out.println("the average of the five numbers is: " + answers[2]);
        System.out.println("the standard deviation of the five numbers is: " + answers[3]);
        System.out.println("the sum of the five numbers is: " + answers[4]);

    }

    public static double[] calculations(double []numbers){
        double[] answers = new double[5];
        double max = numbers[1];
        double min = numbers[1];
        double sum = 0;

        //find max
        for(int i = 0; i<numbers.length; i++){
            if (numbers[i] > max) max = numbers[i];  
        }
        answers[0] = max;

        //find min
        for(int i = 0; i<numbers.length; i++){
            if (numbers[i] < min) min = numbers[i];  
        }
        min = answers[1];

        //find sum
        for(int i = 0; i<numbers.length; i++){
            sum = numbers[i] + sum;
            }
         answers[4] = sum;

        //find average
        double average = (sum / numbers.length);
         answers[2] = average;

        //find standard dev

        double sumOfSquared = 0;
        for(int i = 0; i<numbers.length; i++){
            sumOfSquared = sumOfSquared + Math.pow((numbers[i] - average),2);
        }
        double standarDev = Math.pow((sumOfSquared/numbers.length), .5);
         answers[3] = standarDev;

        return answers;
    }

}

【问题讨论】:

    标签: java arrays methods printing


    【解决方案1】:

    在得到输入后考虑进行计算

        double [] answers = calculations(numbers);
    
        for(int i = 0; i<numbers.length; i++){
            numbers[i] = input.nextDouble();
        }
    

        for(int i = 0; i<numbers.length; i++){
            numbers[i] = input.nextDouble();
        }
    
        double [] answers = calculations(numbers);
    

    【讨论】:

    • 非常感谢!!我是一个新手,这么长时间都想不通。再次感谢。
    【解决方案2】:

    除了上面提到的用户puj,把“find-min”这部分改一下:

    min = answers[1];
    

    answers[1] = min;
    

    否则,您将始终得到 0.0 作为最小值。

    【讨论】:

    • 谢谢!我没有注意到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2013-08-05
    相关资源
    最近更新 更多