2015-03-14 4 views
-1

привет это мой первый пост. Прошу прощения, если вы не спрашиваете правильный раздел, но у меня возникают проблемы с этим домашним заданием, которое я получил. im должен написать один метод, который возвращает 5 вычислений в одномерном массиве. Как только я попытаюсь распечатать его, он печатает значение 0.0 для каждого элемента массива. Я считаю, что я не могу ввести значения, которые я хочу в возвращенный массив, но я не уверен. кто-нибудь знает, как это решить?печать возвращенного массива java

Scanner input = new Scanner(System.in); 
     System.out.println("Please enter 5 numbers: "); 
     double [] numbers = new double[5]; 
     double [] answers = calculations(numbers); 

     for(int i = 0; i<numbers.length; i++){ 
      numbers[i] = input.nextDouble(); 
     } 

     System.out.println("the maximum of the five numbers is: " + answers[0]); 
     System.out.println("the minimum of the five numbers is: " + answers[1]); 
     System.out.println("the average of the five numbers is: " + answers[2]); 
     System.out.println("the standard deviation of the five numbers is: " + answers[3]); 
     System.out.println("the sum of the five numbers is: " + answers[4]); 

    } 

    public static double[] calculations(double []numbers){ 
     double[] answers = new double[5]; 
     double max = numbers[1]; 
     double min = numbers[1]; 
     double sum = 0; 

     //find max 
     for(int i = 0; i<numbers.length; i++){ 
      if (numbers[i] > max) max = numbers[i]; 
     } 
     answers[0] = max; 

     //find min 
     for(int i = 0; i<numbers.length; i++){ 
      if (numbers[i] < min) min = numbers[i]; 
     } 
     min = answers[1]; 

     //find sum 
     for(int i = 0; i<numbers.length; i++){ 
      sum = numbers[i] + sum; 
      } 
     answers[4] = sum; 

     //find average 
     double average = (sum/numbers.length); 
     answers[2] = average; 

     //find standard dev 

     double sumOfSquared = 0; 
     for(int i = 0; i<numbers.length; i++){ 
      sumOfSquared = sumOfSquared + Math.pow((numbers[i] - average),2); 
     } 
     double standarDev = Math.pow((sumOfSquared/numbers.length), .5); 
     answers[3] = standarDev; 

     return answers; 
    } 

} 

ответ

1

Рассмотрим делать ваши расчеты после того, как ваш получить на вход

double [] answers = calculations(numbers); 

    for(int i = 0; i<numbers.length; i++){ 
     numbers[i] = input.nextDouble(); 
    } 

в

for(int i = 0; i<numbers.length; i++){ 
     numbers[i] = input.nextDouble(); 
    } 

    double [] answers = calculations(numbers); 
+0

большое спасибо !! Я такой новичок, который так долго не мог понять. Еще раз спасибо. –

+0

Уверенный чувак, удачи! :) – puj

0

за то, что упомянутые выше пользователь PUJ Кроме этого, изменить эту часть "найти-мин":

min = answers[1]; 

до

answers[1] = min; 

Или иначе вы всегда получите 0.0 в качестве минимального значения.

+0

Спасибо! я не заметил, что –

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