Рассчитать среднее с пользовательскими данными и различными методами

Итак, моя домашняя работа состоит в том, чтобы сформировать программу, которая запрашивает у пользователя от пяти до десяти чисел на одной строке, разделенных пробелами, вычисляет среднее из этих чисел и отображает числа и их среднее для пользователя.

Первый метод не должен принимать аргументов и возвращать строку чисел, разделенных пробелами.

Второй метод должен принимать String в качестве единственного аргумента и возвращать double (среднее значение).

Третий метод должен принимать String и double в качестве аргументов, но не иметь возвращаемого значения.


Моя проблема в том, что я понятия не имею, как рассчитать среднее значение другим методом и распечатать результаты. Я только что изучил методы, поэтому я все еще пытаюсь понять их.

Это то, что у меня есть, и я знаю, что у меня есть ошибки:

import java.util.Scanner;
public class CalculateAvg {

    public static void main(String[] args) {
        String userinput = getuserinput();
    }


    public static String getuserinput() {
        // Read inputs and change string to double
        Scanner in = new Scanner(System.in);
        String userinput;

        System.out.println("Please enter 5 to 10 numbers seperated by spaces: ");
        userinput = in.nextLine();
        double numbs = Double.parseDouble(userinput);
        return userinput;
    }
    // Problem is here. 
    public static double mySum(String sum, String userinput) {
        double avg = 0;
        double count = 0;

        double value = Double.parseDouble(sum);
        sum = sum + userinput;
        count++;
        avg = sum / count;

        return avg;
    }
}    

2 ответа

Поскольку это домашнее задание, я не собираюсь давать вам код, а скорее укажу вам правильное направление.

Прежде всего, следуйте инструкциям. Первый метод должен просто получить пользовательский ввод; ничего больше. Так что, больше ничего не делай там. Вы не сможете использовать его, когда метод все равно вернется.

Второй метод должен иметь только один аргумент; не используйте два тогда. Отправьте пользовательский ввод в этот метод и получите среднее значение. Чтобы получить среднее значение, вам нужны сумма и количество чисел из входных данных. Но у вас есть String, Таким образом, вам нужно разбить эту строку на отдельные числа и проанализировать их в числовой тип, суммировать их, а затем разделить на количество, которое вы получили после разделения ввода.

Я предполагаю, что третий метод будет принимать пользовательский ввод и рассчитанный double и отображать их в чистом виде.

Каждая из этих задач должна быть отдельным методом, поэтому она будет выглядеть примерно так:

input = getInput()
average = getAverage(input)
displayResults(input, average)

Если вы надеетесь на точный код, то я не собираюсь давать вам это.

Чтобы получить от 5 до 10 аргументов, я думаю, что вы можете создать массив, создать цикл for ( in.nextInt() получит входные данные) и создать оператор break внутри цикла в операторе if.

Оператор if проверит, где остановиться (укажите число, которого не будет в массиве, и отметьте как конец аргумента).

Это может быть использовано, когда вы получаете их как int.

Если вы хотите прочитать всю строку как одну, то сохраните строку строки в str (или что-то еще).

String [] nums = str.split ("");

Этот оператор сделает все числа, хранящиеся в массивах String.

Чтобы получить числа, используйте цикл for и Double.parseDouble( nums[ i ]) .

Теперь, если вы паниковали, чтобы делать это разными способами, просто используйте глобальные переменные.

Я думаю, что эта большая помощь может сделать вашу работу.

Другие вопросы по тегам