所以我试图制作一个程序来输出总和、平均值、最小值和最大值。我基本上已经弄清楚了除了最小和最大值输出 2147483647 和 -2147483647 之外的所有内容,我相信这是 Java 将计算的绝对最小和最大值。无论如何,我想计算用户输入的数字,所以这显然是不正确的。
这是我的班级。我认为 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());
}
}
除了最小和最大的数字之外,所有内容都正确输出(计数、总和、平均值)。如果有人能指出我做错的事情的正确方向,那就太好了。谢谢。
反转你的largest
& smallest
初始值和Math.max
& Math.min
将相应地选择正确的值:
largest = Integer.MIN_VALUE;
smallest = Integer.MAX_VALUE;
As Integer.MIN_VALUE
是整数的最小可能值,语句:
largest = Math.max(x, largest);
将产生值x
第一次被调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)