2013-05-01 72 views
1

我的java編碼類的作業是要求我找到一個雙2d數組和二維整數數組的一個參差不齊的二維數組的平均值。我相信我的代碼是正確的,但不是平均數組,而是將它除以2.任何幫助將不勝感激!衣衫襤褸的雙二維數組的平均值

代碼:

public static void main(String[] args) { 
    // adds to 22 
    double[][] a = {{7.0, 6.0, 5.0}, {3.0, 1.0}}; 

    //adds to 48 
    int[][] b = {{4, 6}, {9, 8, 10, 11}}; 
    int i = 0; 
    System.out.println("arrayAverage = " + arrayAverage(a)); 
    System.out.println("arrayAverage = " + arrayAverage(b)); 
} 

/** 
* computes the average for an array of a double 
*/ 
public static double arrayAverage(double a[][]) { 
    double sum = 0.0; 

    for (int i = 0; i < a.length; i++) { 
     for (int j = 0; j < a[i].length; j++) { 
      sum += a[i][j]; 

     } 

    } 

    System.out.println("Calculating Double Array"); 
    return sum/a.length; 
} 
/** 
* Computes the average for an array of integers. 
*/ 
public static int arrayAverage(int b [][]) { 
    int sum = 0; 

    for (int i = 0; i < b.length; i++) { 
     for (int j = 0; j < b[i].length; j++) { 
      sum += b[i][j]; 

     } 

    } 

    System.out.println("Calculating Integer Array"); 
    return sum/b.length; 
} 

}

run: 
Calculating Double Array 
arrayAverage = 11.0 
Calculating Integer Array 
arrayAverage = 24 
BUILD SUCCESSFUL (total time: 0 seconds) 

回答

2

當由a.length分割,則通過2分割,因爲這是陣列a的長度。數組a中有兩個項目:{7.0, 6.0, 5.0}{3.0, 1.0}

要對數組中的所有數字進行平均,您需要通過總和子數組長度來計算所有數字。聲明一個count變量,並在i for循環中添加子陣列a[i].length的長度。最後除以count

小心你的int[][]整數除法的平均方法,其中小數被截斷。

+0

你通過一個計數變量是什麼意思? – user2313658 2013-05-02 01:26:25

0

這是rgettman意味着

public static void main(String[] args) { 

     double[][] a = {{7.0, 6.0, 5.0}, {3.0, 1.0}}; 
     int[][] b = {{4, 6}, {9, 8, 10, 11}}; 
     System.out.println("arrayAverage = " + arrayAverage(a)); 
     System.out.println("arrayAverage= " + arrayAverage(b)); 

    } 


/** 
* computes the average for an array of a double 
*/ 
public static double arrayAverage(double a[][]) { 

    double sum = 0.0; 
    int count = 0; 

    for (int i = 0; i < a.length; i++) { 
     for (int j = 0; j < a[i].length; j++) { 
      sum += a[i][j]; 
      count++; 

     } 

    } 

    System.out.println("Calculating Double Array"); 

    return sum/count; 
} 





/** 
* Computes the average for an array of integers. 
*/ 
public static int arrayAverage(int b [][]) { 
    int sum = 0; 
    int count = 0; 

    for (int i = 0; i < b.length; i++) { 
     for (int j = 0; j < b[i].length; j++) { 
      sum += b[i][j]; 
      count++; 


     } 

    } 

    System.out.println("Calculating Integer Array"); 
    return sum/count; 
} 


} 

你應該得到正確的答案:)

+0

謝謝你的幫助! – user2313658 2013-05-02 17:48:57

相關問題