Как рассчитать среднее значение последовательности целых чисел, считанных из консоли? - PullRequest
0 голосов
/ 12 октября 2018

Чего не хватает в моем коде, чтобы вычислить среднее число введенных чисел от пользователя?

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n;
    float average;
    do {
        System.out.print("Enter a number: ");
        n = scanner.nextInt();
        System.out.println("Your number is " + n);
    } while (n != 0);

    if (n == 0) {
        System.out.println("The average is : " + n);
    }

    scanner.close();
}

}

Когда пользователь вводит «0», программа должна рассчитать среднее значение введенных чисел.числа пользователем, поэтому я написал "while (n! = 0)".

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

На самом деле вы не используете числа, на которых читаете. Хороший редактор скажет вам об этом еще до того, как вы его запустите.Я хотел бы получить IDE Eclipse .Вам захочется сделать что-то похожее на то, что предлагает jhenrique .Я бы сказал, что, вероятно, лучше добавлять числа в виде целых чисел, а затем приводить их позже, чтобы вы не потеряли точность при сложении с плавающей запятой, что в некоторых случаях может принести вам много горя (но здесь вы, вероятно, в порядке).Вот мой предложенный код, модифицированный из ответа Дженрике:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n;
    int sum = 0;
    int count = 0;
    do {
        System.out.print("Enter a number: ");
        n = scanner.nextInt();
        System.out.println("Your number is " + n);

        sum += n;
        count++;
    } while (n != 0);

    System.out.println("The average is : " + ((double) sum) / (count - 1));

    scanner.close();
}

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

0 голосов
/ 12 октября 2018

Вы должны сделать что-то вроде этого: Обратите внимание, что, поскольку у вас есть еще одно число (ноль), вы должны учитывать его при вычислении среднего значения, удаляя его, потому что вы запрашиваете 0 для завершения программы.

открытый класс Teste {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n;
    double average = 0;
    int qtdNums = 0;
    do {
        System.out.print("Enter a number: ");
        n = scanner.nextInt();
        System.out.println("Your number is " + n);

        average = average + n;
        qtdNums++;
    } while (n != 0);

    if (n == 0) {
        System.out.println("The average is : " + average / (qtdNums - 1));
    }

    scanner.close();
}
}
...