我想编写一个程序来读取用户输入的一组值。然后我想打印最小,最大,总和和平均值。见下文:
float largest = in.nextFloat();
float smallest = largest;
while (inputs != -1) \\-1 is the sentinel
{
inputs = in.nextFloat();
if (inputs !=-1)
{
sum = sum + inputs;
counter++;
if (inputs > largest)
{
largest = inputs;
}
if (inputs < smallest)
{
smallest = inputs;
}
}
}
这不起作用。会发生的是,对于总和,第一个输入不会被计算。因此,例如集合1 2 3 4 5 -1将给出14而不是15的总和(记住-1是哨兵)。我怀疑我知道为什么会这样,因为用户输入的第一个值将用于初始化&#34; float maximum&#34;然后第二个值将是第一个进入&#34;输入&#34;。
然而即使我怀疑我知道错误,我也不知道如何解决它。我尝试将前两行代码移动到while循环中,但这会产生很多错误,而这些错误无处可寻。知道怎么做吗?
答案 0 :(得分:0)
代码的第一行是检索值并移动光标。
你需要在循环之前初始化你的总和:
float largest = in.nextFloat();
float smallest = largest;
float sum = largest;