簡體   English   中英

為什么我的Java代碼沒有得到正確的平均值?

[英]Why am I not getting the right average in my java code?

因此,我正在處理一個賦值,並且幾乎是在使用方法並返回它。 到目前為止,我的代碼應該將數字打印在數組中,然后將這些數字取平均值。 我必須使用給定的確切格式使用給定的方法,但是我不確定為什么平均值出了錯。 它正在打印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;   

實際上,它先打印了數組( 52167 ),然后打印了平均值( 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]);
    }
}

您的代碼沒有錯。 由於輸出,您感到困惑。

如果您注釋處理printArray() ,或將其System.out.print()更改為System.out.println() ,那么您將看到預期的結果。

當前,您的代碼正在同一行上打印數組的內容和平均值,中間沒有空格。 刪除printArray()調用,您將看到它僅輸出平均值4.2 ,這是正確的:

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);
}

您應該使用.println()而不是print(),這會很好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM