java使用用户输入和不同的方法计算平均值
所以,我的家庭作业是形成一个程序,提示用户在一行上输入五到十个数字,用空格分隔,计算这些数字的平均值,并向用户显示这些数字及其平均值
第一个方法不应接受任何参数,并返回一个由空格分隔的数字字符串
第二个方法应该将字符串作为其唯一参数,并返回一个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;
}
}
# 1 楼答案
如果你希望得到一个准确的密码,那么我不会给你
为了获得5到10个参数,我认为可以创建一个数组,生成for循环(in.nextInt()将获得输入),并在if语句的循环内创建一个break语句
If语句将检查停止的位置(将一些不在数组中的数字标记为参数的结尾)
当你把它们设为int时,可以使用它
如果你想把整行读成一行,那么把行字符串保存在str(或其他什么东西)中
字符串[]nums=str.split(“”)
此语句将使所有数字存储在字符串数组中
要获得数字,请使用for循环和Double。parseDouble(nums[i])
如果你对用不同的方法做这些事情感到恐慌,那么就使用全局变量
我想这么多的帮助可能会帮你完成工作
# 2 楼答案
因为这是家庭作业,我不会给你代码,而是给你指出正确的方向
首先,也是最重要的一点,遵循说明。第一种方法应该只获取用户输入;没别的了。所以,不要在那里做任何其他事情。一旦该方法返回,您将无法使用它
第二种方法应该只有一个参数;那就不要用两个。将用户输入发送到该方法并获得平均值。要获得平均值,需要输入数字的总和和计数。但是你有一个
String
。因此,您需要将该字符串拆分为单独的数字,并将其解析为数字类型,求和,然后除以拆分输入后获得的计数我假设第三种方法将采用用户输入和计算出的双精度,并以干净的方式显示它们
这些任务中的每一项都应该是独立的方法,因此类似于以下内容: