当前位置: 首页 > 知识库问答 >
问题:

Java,ErroMax和最小数组对象数据?

子车高歌
2023-03-14

我需要一些关于最大值和最小值的帮助。此代码部分来自我的年度燃料使用类的主要方法。该计划根据我的汽车至少三次加油量来预测我的年度燃油使用量。

我正在计算距离(即行驶里程)、MPG和每加仑价格的最大值和最小值。从我的打印语句(不包括在内)中,我可以看到它正确地计算了最大值,但不是最小值,因为它打印了我初始化变量的零,而不是真正的最小值。

一些代码

//initialization of array of objects
   AnnualFuelUse[] fillUps = {new AnnualFuelUse (1, 1, 6500, 6800, 9.70, 3.11),
                              new AnnualFuelUse (2, 10, 6800, 7052, 8.10, 3.08),
                              new AnnualFuelUse (3, 20, 7052, 7349, 9.20, 3.15)};  

再来点代码

//calculate Min and Max for distance, MPG, and price per gallon
   double minDist = 0, maxDist = 0;
   double minMPG = 0.0, maxMPG = 0.0, minPrice = 0.0, maxPrice = 0.0;

   Double dMin = Double.MAX_VALUE;
   Double dMax = Double.MIN_VALUE;
   Double mpgMin = Double.MAX_VALUE;
   Double mpgMax = Double.MIN_VALUE;
   Double priceMin = Double.MAX_VALUE;
   Double priceMax = Double.MIN_VALUE;

   for (int i = 0; i < fillUps.length; i++) {
       if (fillUps[i].getDist() > dMin){
            dMin = fillUps[i].getDist();
            minDist = dMin;
       }     
       if (fillUps[i].getDist() > dMax) {
            dMax = fillUps[i].getDist();
            maxDist = dMax;
       }
       if (fillUps[i].getMilesPerGallon() > mpgMin) {
            mpgMin = fillUps[i].getMilesPerGallon();
            minMPG = mpgMin;
       }    
       if (fillUps[i].getMilesPerGallon() > mpgMax) {
            mpgMax = fillUps[i].getMilesPerGallon();
            maxMPG = mpgMax;
       }             
       if (fillUps[i].getPrice() > priceMin) {
            priceMin = fillUps[i].getPrice();
            minPrice = priceMin;
       }          
       if (fillUps[i].getPrice() > priceMax) {
            priceMax = fillUps[i].getPrice();
            maxPrice = priceMax;
       }
    }

它给出了距离、MPG和价格的以下数据PerGallon

最小值:0、0.0、0.00最大值:300、2.3、3.15

非常感谢您的帮助!!:)

共有1个答案

桂坚
2023-03-14

比较这些if条件:

   if (fillUps[i].getDist() > dMin){
        dMin = fillUps[i].getDist();
        minDist = dMin;
   }     
   if (fillUps[i].getDist() > dMax) {
        dMax = fillUps[i].getDist();
        maxDist = dMax;
   }

您在第一个中要做的是if(fillUps[i]. getDist()

之间有很大的区别

您总是比较“值大于”而不是“值小于”

 类似资料:
  • 问题内容: 我的代码没有给出错误,但是没有显示最小值和最大值。代码是: 我是否需要system.out.println()来显示它,否则返回应该起作用吗? 问题答案: 您正在调用方法,但不使用返回的值。

  • 我需要创建一个对象(银行),其中包含一组客户端和bankID。我的问题是,我不知道如何在主函数中创建银行。 银行类别: 客户端类: 主要类别: 这些是问题所在: 你必须创建一个程序来模拟银行活动。该系统包括以下模块:银行—客户(客户数组)— idBank(字符串)5 BancAccount — accountNumber(字符串)—金额(浮点)客户—姓名(字符串)—地址(字符串)—账户(银行账户数

  • 给你一个整数列表,长度为偶数。考虑这样一个操作,您在nums中选择任意数字,并用[1,max(nums)]之间的值更新它。返回所需的操作数,使得对于每个i,nums[i]+nums[n-1-i]等于相同的数。问题可以贪婪地解决。 注意:n是数组的大小,max(nums)是nums中的最大元素。 null 设i=0,nums[0]+nums[6-1-0]=4。 i=1,nums[1]+nums[6-

  • 问题内容: 我在创建对象数组时遇到问题,但是当我尝试解决它时遇到问题。 这是有问题的课程。 这是班座。 请让我知道是否需要提供更多信息/代码 问题答案: 这样做 您忘记实例化数组中存在的对象。所以它提示空指针异常

  • 问题内容: 我想输出二维数组的最大值和最小值。Max可以很好地工作,但是即使在数组中没有零的情况下min也总是输出零。在本例中,我设置为99以防止较小的机会在数组中获得零。继承人完整代码: 问题答案: 由于您在中选择随机值的方式,不会存在小于零的值- 但也无法保证任何值都将恰好为零。但是,您将初始化为零,因为这是数组元素的默认值;没有什么比这更小了,所以答案总是零。 您应该在标记为“查找最小值”的