所以,我的作业是形成一个程序,在一行上提示用户输入五到十个数字,用空格分隔,计算这些数字的平均值,并向用户显示数字及其平均值。
第一个方法不应该带参数,并返回由空格分隔的数字字符串。
第二种方法应该将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;
}
}
答案 0 :(得分:1)
由于这是作业,我不会给你代码,而是指出你正确的方向。
首先,按照说明进行操作。第一种方法应该只是获得用户输入;没有其他的。所以,不要在那里做任何其他事情。无论如何,一旦方法返回,你就无法使用它。
第二种方法应该只有一个参数;那时候不要用两个。将用户输入发送到该方法并获得平均值。要获得平均值,您需要输入中的总和和数字计数。但你有一个String
。因此,您需要将该字符串拆分为单个数字并将其解析为数字类型,将它们相加,然后除以分割输入后获得的计数。
我假设第三种方法将采用用户输入和计算的double,并以干净的方式显示它们。
这些任务中的每一个都应该是单独的方法,所以它类似于这样的东西:
input = getInput()
average = getAverage(input)
displayResults(input, average)
答案 1 :(得分:0)
如果您希望获得准确的代码,那么我不会给您这样的。
要获取5到10个参数,我认为你可以创建一个数组make for循环(in.nextInt()将得到输入)并在if语句中在循环内创建一个break语句。
if语句将检查停止的位置(放置一些不在数组中的数字并标记为参数的结尾)。
当你将它们作为int时,可以使用它。
如果要将整行读作一行,则将行字符串保存在str(或其他)中。
String [] nums = str.split("");
此语句将使所有数字存储在String数组中。
要获取数字,请使用for循环和Double.parseDouble(nums [i])。
现在如果你惊慌失措地用不同的方法做这些事情,那么就使用全局变量。
我认为这很有帮助可能会让你的工作完成。