【发布时间】:2014-11-09 21:06:35
【问题描述】:
我似乎无法让这段代码正确平均数字。当我输入 5 个 1 位数字(例如 9、6、2 等)时,它会给我不正确的结果,例如输入五个 2,它会给我答案“0.0”。即使输入两位或更多位的数字,它也会错误地将数字四舍五入。就像它甚至不承认它是一个替身一样。我想我错过了一些非常明显的东西,有一段时间没有编程所以不会感到惊讶。
代码如下:
import java.util.*;
public class LittleBoxes2
{
public static void main (String[] args)
{
Scanner input = new Scanner (System.in);
int[] num;
double avg;
String cont = "Y";
while(cont.equals("Y") || cont.equals("y"))
{
num = new int [5];
for(int i = 1; i <= 5; i++)
{
System.out.println("Enter number " + i + ".");
num[i - 1] = input.nextInt();
}
avg = num[0] / 5 + num[1] / 5 + num[2] / 5 + num[3] / 5 + num[4] / 5;
System.out.println("The average number is: " + avg + ".");
System.out.println("Do you want to continue? (Y/N)");
input.nextLine();
cont = input.nextLine();
}
}
}
【问题讨论】:
-
尝试使用新的 Java 8
StreamAPI - 最值得注意的IntStream.summaryStatistics。 -
avg = num[0] / 5 + num[1] / 5 + num[2] / 5 + num[3] / 5 + num[4] / 5;... 或者简而言之:avg = (num[0] + num[1] + num[2] + num[3] + num[4]) / 5.0;
标签: java arrays double average