2014-11-21 24 views
0

我的任務是讓用戶輸入10個數字,然後分別輸出偶數和奇數的平均值。使用陣列的平均時間/賠率

所以我非常接近找出這一個,但是當我運行代碼時,我得到錯誤java.lang.ArithmeticException:/by zero。我知道這意味着什麼,但我找不出解決問題的方法。即使我把even/oddAverage計算在Averages方法中,它仍然是不正確的。

下面的代碼:

public class Averages { 
    static int[] numbers = new int[10]; 
    static int i = 0; 
    static int oddSum = 0; 
    static int evenSum = 0; 
    static int oddCount = 0; 
    static int evenCount = 0; 
    static double oddAverage = 0; 
    static double evenAverage = 0; 

    public static void Averages() {  
     for (i = 0; i < numbers.length; i++) { 
      if (i % 2 == 0) { 
       evenCount++; 
       evenSum = evenSum + i; 
      } else { 
       oddCount++; 
       oddSum = oddSum + i; 
      } 
     } 
    } 

    public static void getEven() { 
    evenAverage = evenSum/evenCount; 
    System.out.println("\nThe average of the even numbers is: " + evenAverage + "."); 
    } 

    public static void getOdd() { 
    oddAverage = oddSum/oddCount; 
    System.out.println("\nThe average of the odd numbers is: " + oddAverage + "."); 
    } 
} 

和主:

import java.util.Scanner; 
public class AveragesTester { 
    public static void main (String [] args) { 
     Scanner input = new Scanner(System.in);  
     int i = 0; 

     System.out.println("\nPlease input " + 10 + " numbers."); 
     for (i = 0; i < Averages.numbers.length; i++){ 
      Averages.numbers[i] = input.nextInt();  
     } 

     Averages.getEven(); 
     Averages.getOdd(); 
    } 
} 

你標記其視爲重複之前,我試圖解決使用上面這個問題提到無濟於事一個代碼。

+0

將「構造函數」更改爲「public Averages()」,並創建一個Averages對象:平均avg = new Averages();開始。 – mdnghtblue 2014-11-21 16:24:41

+0

如果所有的數字都是偶數或全部都是奇數,那麼仔細想一想 – akashchandrakar 2014-11-21 16:26:36

回答

1

你沒有調用平均構造函數來計算平均值。您正在調用靜態方法而不計算平均值,因此您會得到除以零例外。