【发布时间】:2015-09-02 06:22:43
【问题描述】:
我正在尝试编写一个 Java 程序,它接收可能无限数量的值 - 一旦用户输入负数,程序就会停止,计算所有输入数字的平均值(不包括负数)和打印出输入了多少数字(再一次,不是负数)以及平均值。
以下是我目前拥有的代码。当我尝试运行程序时,它无法正确计算平均值,您必须输入几个连续的负数才能最终停止程序。
为了测试算术和程序的其余部分,我插入了一条语句,如果输入“负数”而不是负数,该语句将关闭程序。何时执行此操作,平均值和计数以及其他所有内容都按原样工作。本质上,当我尝试在负数后停止程序时,问题就开始出现了。
我是一名初级程序员,这让我发疯了几个小时。任何帮助是极大的赞赏!
import java.util.*;
import java.lang.Math;
import java.io.IOException;
import java.io.InputStream;
public class Average
{
public static void main(String[] args)
{
Scanner numInput = new Scanner(System.in);
double avg = 0.0;
double count = 0.0;
double sum = 0.0;
System.out.println("Enter a series of numbers. Enter a negative number to quit.");
while (numInput.hasNextDouble())
{
double negNum = numInput.nextDouble();
if (negNum >= 0)
{
sum += numInput.nextDouble();
count++;
avg = sum/count;
}
else
{
System.out.println("You entered " + count + " numbers averaging " + avg + ".");
break;
}
}
}
}
【问题讨论】:
-
你在里面调用了 nextDouble 两次。您应该将 negNum 添加到 sum。