为什么我的java代码没有得到正确的平均值?

use*_*252 -1 java arrays methods return

所以我正在完成一项任务,并且几乎使用方法并返回.到目前为止我的代码应该打印一个数组中的数字,然后它取这些数字并平均它们.我必须按照给出的确切格式使用我给出的方法,但我不确定为什么平均值出错了.打印521674.2作为平均值显然是错误的.这是我的代码:

public class Statistics
{

    public static void main(String[] args)
    {
        int[] nums = new int[]{5, 2, 1, 6, 7};

        printArray(nums);
        average(nums);
        double store = average(nums);
        System.out.println(store);
    }


    public static void printArray(int[] nums) {
        for(int i = 0; i < nums.length; i++){ 
            System.out.print(nums[i]); 
            }
    }


    public static double average(int[] values) {
        int sum = 0;
        double average;

        for(int i=0; i < values.length; i++){
            sum = sum + values[i];
        }
        average = (double)sum/values.length;
        return average;   
Run Code Online (Sandbox Code Playgroud)

Doo*_*nob 5

实际上,它打印了array(52167)然后是average(4.2).

为了改善这一点,你可能希望有一个System.out.println();在最末端printArray,所以输出是它自己的行.

您可能还希望有一个分隔符,,以便打印5,2,1,6,7.例如:

public static void printArray(int[] nums) {
    for (int i = 0; i < nums.length - 1; i++) { 
        System.out.print(nums[i]);
        System.out.print(","); 
    }
    if (nums.length > 0) { // make sure array isn't empty
        System.out.println(nums[nums.length - 1]);
    }
}
Run Code Online (Sandbox Code Playgroud)