【发布时间】:2021-03-27 00:40:02
【问题描述】:
我在作业方面需要帮助。这里有很多类似的问题,但这些答案对我不起作用,所以我不知道我做错了什么。
分配是“程序提示用户输入 5 到 10 个数字,都在一行上,并用空格分隔。然后程序计算这些数字的平均值,并将这些数字及其平均值显示给用户。”
我们需要调用不同的方法来做到这一点。给我带来问题的部分是将字符串转换为双精度并找到平均值。我们还需要验证字符串中是否有 5-10 个数字(我可以在正确计数后验证它)。我尝试了一些方法,包括对此处类似问题的答案(如下面的代码所示),但我得到的唯一输出是 0.0。
这是我的代码:
public static void main(String[] args) {
String getNumbers = "";
double calcAverage = 0;
getNumbers();
calcAverage(getNumbers);
System.out.println(calcAverage);
}
public static String getNumbers() {
Scanner scnr = new Scanner(System.in);
System.out.println("Please enter 5 to 10 numbers separated by spaces: ");
String getNumbers = scnr.next();
return getNumbers;
}
public static double calcAverage(String userNumbers){
double calcAverage = 0.0;
double i = 0;
double count = 0.0;
Scanner str = new Scanner(userNumbers);
while (str.hasNextDouble()){
count++;
i = i + str.nextDouble();
}
System.out.println("count=" + count); //test to check it is counting properly
calcAverage = i/count;
return calcAverage;
}
非常感谢您的帮助!
【问题讨论】:
-
对不起 Zephyr,我没有澄清。作业要我们使用一个while循环。我确实看到你写的方法是一种可能,但不幸的是它不符合作业要求。
-
我建议您edit 提出您的问题并发布您的minimal reproducible example。在不知道传递给此方法的
userNumbers字符串的格式的情况下,很难进行测试。 -
@Zephyr,我现在将添加更多代码。这是我第一次提出问题,我不确定要添加什么
-
不用担心,欢迎来到 Stack Overflow。请务必阅读我发布的链接,因为它对本网站非常重要。有时这似乎有点矫枉过正,但相信我:它总会带来更有帮助的答案。 :)
-
可以使用Double.parseDouble(String)进行解析