这是我的代码
import java.util.*;
import java.io.*;
public class eCheck10A
{
public static void main(String[] args)
{
PrintStream out = System.out;
Scanner in = new Scanner(System.in);
out.print("Enter your integers");
out.println("Negative = sentinel");
List<Integer> aList = new ArrayList<Integer>();
for (int n1 = in.nextInt(); n1 > 0; n1 = in.nextInt())
{
if(n1 < 0)
{
break;
}
}
}
}
如果我想获取我为n1输入的所有数字,并将它们平均,我如何参考所有这些数字?我将把它们放在IF语句中,所以如果输入一个负数,程序就会停止并发布它们的平均值。
答案 0 :(得分:2)
这是您需要执行此任务的伪代码(伪代码,因为它看起来很像家庭作业/课堂作业,如果您自己坚持实施,您将成为更好的开发人员。)
因为您不需要数字本身来计算平均值,所以存储它们没有意义。平均值定义为所有数字除以其计数的总和,因此您需要记住这一切。这样的事情就足够了:
total = 0
count = 0
n1 = get_next_number()
while n1 >= 0:
total = total + n1
count = count + 1
n1 = get_next_number()
if count == 0:
print "No numbers were entered.
else:
print "Average is ", (total / count)
我要提到的其他几点。现在,您的for
语句将以第一个非正数(<= 0
)退出,使if
多余。
此外,您可能想要任何零都包含在平均值中:{1,2,3} = 2
的平均值与{1,2,3,0,0,0} = 1
的平均值不同。
您可以使用以下内容在for
语句中执行此操作:
for (int n1 = in.nextInt(); n1 >= 0; n1 = in.nextInt())
然后你根本不需要循环中的if/break
位,类似于我提供的伪代码。
答案 1 :(得分:0)
您需要做的概述:创建一个变量sum以将所有值相加并创建另一个名为count的变量,该变量将用于存储列表中的非负数的数量aList。然后将总和除以计数以找到平均值。
答案 2 :(得分:0)
另一种做平均值的方法是:
new_average = old_average +(new_number - old_average)/ count
如果你曾经为变量类型命中了max,你会欣赏这个公式。