所以我正在试图编写一个程序来输出总和,平均值和最小值以及最大值。除了最小和最大值输出2147483647和-2147483647,我相信它们是Java将计算的绝对最小和最大值,我基本上已经找到了一切。无论如何,我想计算一个用户输入的数字,所以这显然是不正确的。Math.max和Math.min输出允许的最高和最低值
这是我的课。我认为addValue方法出了问题。
public class DataSet
{
private int sum;
private int count;
private int largest;
private int smallest;
private double average;
public DataSet()
{
sum = 0;
count = 0;
largest = Integer.MAX_VALUE;
smallest = Integer.MIN_VALUE;
average = 0;
}
public void addValue(int x)
{
count++;
sum = sum + x;
largest = Math.max(x, largest);
smallest = Math.min(x, smallest);
}
public int getSum()
{
return sum;
}
public double getAverage()
{
average = sum/count;
return average;
}
public int getCount()
{
return count;
}
public int getLargest()
{
return largest;
}
public int getSmallest()
{
return smallest;
}
}
这里是我为这个项目测试类:
public class DataSetTester {
public static void main(String[] arg) {
DataSet ds = new DataSet();
ds.addValue(13);
ds.addValue(-2);
ds.addValue(3);
ds.addValue(0);
System.out.println("Count: " + ds.getCount());
System.out.println("Sum: " + ds.getSum());
System.out.println("Average: " + ds.getAverage());
System.out.println("Smallest: " + ds.getSmallest());
System.out.println("Largest: " + ds.getLargest());
}
}
一切正常输出(计数,求和,平均值),除了最小的和最大的数字。如果任何人都可以指出我做错了什么的正确方向,那会很棒。谢谢。
对于记录,最小的'int'值是'-2147483648'而不是'-2147483647'。 –