JAVA: Найти среднее значение списка двойного массива

1

Попытка ввода арраиста из дублей в консоль, а затем, когда пользователь заканчивает вход в arraylist с помощью ctrl-z или d, найдите среднее число номеров, которые они ввели, используя удвоения.

Я получаю много ошибок от этого, и я не уверен, почему! любая помощь приветствуется, поскольку я начинаю java

public static void main(String[] args) {
    ArrayList<Double> numbers = new ArrayList<Double>();  

    Scanner in = new Scanner(System.in);   

    while (in.hasNextDouble())  
    {  
        Double input = in.nextDouble();  
        numbers.add(input);  
    }  

    in.close();

    for (Double element : numbers)  {  
        Double sum += element;
        System.out.println(sum/numbers.size()); 
    }
} 
  • 3
    Какие именно ошибки вы получаете?
  • 0
    в строке "Двойной ввод = in.nextDouble ();" я получаю ошибку несоответствия типов, которая говорит: «Несоответствие типов: невозможно преобразовать из двойного в двойное»
Теги:
arraylist

4 ответа

4

Чтобы вычислить окончательное значение:

double sum = 0;
for(double d : numbers) {
    sum += d;
}
System.out.println(sum / numbers.size()); 
1
// don't miss the imports
import java.util.ArrayList;
import java.util.Scanner;

// you might have missed to add your main() method in a class
public class Average {
    public static void main(String[] args) {
        // This part was ok
        ArrayList<Double> numbers = new ArrayList<Double>();
        Scanner in = new Scanner(System.in);
        while (in.hasNextDouble()) {
            Double input = in.nextDouble();
            numbers.add(input);
        }
        in.close();

        // Forgot to initialize the value of sum
        Double sum = 0d;
        for (Double element : numbers) {
            // add the element
            sum += element;
            // don't count the average here
        }
        // count it outside the loop
        System.out.println(sum / numbers.size());
    }
}
0

Я добавил пакет java.util, который требуется для collections classes Scanner и collections classes в основной проблеме вашего кода, был в вашем ответе for PLZ-метку for loop. Спасибо :)

import java.util.*;
    public class Test {

        public static void main(String[] args) {
            Double sum=0.0;
              ArrayList<Double> numbers = new ArrayList<Double>();  

              Scanner in = new Scanner(System.in);   

              while (in.hasNextDouble())  
              {  
                 Double input = in.nextDouble();  
                 numbers.add(input);  
              }  

               in.close();


                 for (Double element : numbers)  {  
                    sum += element;
            }
                   System.out.println(sum/numbers.size()); 

              } 

    }
0
Double sum += element;

Это не юридический синтаксис, вы пытаетесь добавить что-то к определению переменной, которое не работает. Вы все же близки. Просто объявите переменную sum вне цикла for.

double sum = 0;
for (double element : numbers)  {  
       sum += element;
   }
System.out.println(sum/numbers.size()); 

Вы также, вероятно, не хотите распечатывать текущее среднее значение каждый раз, поэтому вам следует просто переместить это после цикла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню