【发布时间】:2017-10-20 04:02:11
【问题描述】:
有一项学校任务是在一个数组中找到总和、平均数和最大数。输入和分析都必须是 if 循环。这就是我所做的,但总和不起作用,因此平均值错误也是错误的。我可以改进什么?
double average = 0;
int biggest = 0;
int [] arrayx = new int[5];
Scanner stdIn = new Scanner(System.in);
for (int i = 0; i < arrayx.length; i++) {
System.out.println("Write an integer: ");
arrayx[i] = stdIn.nextInt();
average += arrayx[i] /arrayx.length;
if(biggest == 0 || arrayx[i] > biggest)
{
biggest = arrayx[i];
}
}
System.out.println("Sum is: " + (average*arrayx.length));
System.out.println("Average is: " + average);
System.out.println("Biggest number is: " + biggest);
stdIn.close();
【问题讨论】:
-
您遇到错误了吗?
-
可能是整数除法。
-
没有错误,只是错误的数字,通常比正确的和高5-10个数字
-
@Znarvi 我的答案假设整数除法,这实际上会给你一个比预期“更小”的总和,但你看到的总和更大?此输入中有负数吗?
-
计算平均值的更简单方法是将所有项目相加,然后将 total 除以项目数。不要将每个项目除以项目的数量。