Рассчитать среднее с пользовательскими данными и различными методами
Итак, моя домашняя работа состоит в том, чтобы сформировать программу, которая запрашивает у пользователя от пяти до десяти чисел на одной строке, разделенных пробелами, вычисляет среднее из этих чисел и отображает числа и их среднее для пользователя.
Первый метод не должен принимать аргументов и возвращать строку чисел, разделенных пробелами.
Второй метод должен принимать 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 ]) .
Теперь, если вы паниковали, чтобы делать это разными способами, просто используйте глобальные переменные.
Я думаю, что эта большая помощь может сделать вашу работу.