2014-11-21 5 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

+0

Что делать, если все цифры четные или все странные, подумайте внимательно – akashchandrakar

ответ

1

Вы не вызываете Средний конструктор, где вычисляете среднее значение. Вместо этого вы вызываете статический метод, не вычисляя среднее значение, и поэтому вы получаете деление на нулевое исключение.

Смежные вопросы