Попытка ввода арраиста из дублей в консоль, а затем, когда пользователь заканчивает вход в 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());
}
}
Чтобы вычислить окончательное значение:
double sum = 0;
for(double d : numbers) {
sum += d;
}
System.out.println(sum / numbers.size());
// 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());
}
}
Я добавил пакет 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());
}
}
Double sum += element;
Это не юридический синтаксис, вы пытаетесь добавить что-то к определению переменной, которое не работает. Вы все же близки. Просто объявите переменную sum
вне цикла for
.
double sum = 0;
for (double element : numbers) {
sum += element;
}
System.out.println(sum/numbers.size());
Вы также, вероятно, не хотите распечатывать текущее среднее значение каждый раз, поэтому вам следует просто переместить это после цикла.