繁体   English   中英

Java最小值最大值

[英]Java min max values

一切工作正常,我只需要说出降雨量最高/最低的季度,而不是实际值即可。 我不确定如何将四分之一和值绑定在一起,以便输出是四分之一,二,三或四。

import java.util.Scanner;

public class rainfall
{
   public static void main(String[] args) 
   { 
      Scanner scan = new Scanner(System.in); 
      double[] rainfall = new double[4]; 
      double totalRainfall = 0.0; 
      double max = 0, min = 0;


      for (int i=0; i < 4; i++) 
      { 
         System.out.print("Enter rainfall for quarter " + (i+1) + ": "); 
         rainfall[i] = scan.nextDouble(); 
         totalRainfall += rainfall[i]; 
         if (i == 0)
         {
            max = min = rainfall[i];
         }

         {
            if (rainfall[i] > max)
               max = rainfall[i];
            else if (rainfall[i] < min)
               min = (i + 1);
            //min = rainfall[i];     
         }
     }

   System.out.println("Total rainfall = "+totalRainfall); 
   System.out.println("Average rainfall = "+(totalRainfall / 4.0)); 
   System.out.println("Max quarter rainfall = "+ max);
   System.out.println("Min quarter rainfall = " + min);

   //System.out.println("Max quarter rainfall = "+ maxQuarter);
   //System.out.println("Min quarter rainfall = " + minQuarter);

   }//end main 
}//end class

只需存储索引而不是值:

if (rainfall[i] > rainfall[max])
    max = i;
else if (rainfall[i] < rainfall[min])
    min = i;

System.out.println("Max quarter rainfall = " + max + 1);
System.out.println("Min quarter rainfall = " + min + 1);

您需要跟踪maxQuarter和minQuarter(作为整数添加)以及max和min。 像这样:

import java.util.Scanner;

public class rainfall
{
   public static void main(String[] args) 
   { 
      Scanner scan = new Scanner(System.in); 
      double[] rainfall = new double[4]; 
      double totalRainfall = 0.0; 
      double max = 0, min = 0;
      // init to Q1 as that's the 1st tested
      int maxQuarter = 1, minQuarter = 1;


      for (int i=0; i < 4; i++) 
      { 
         System.out.print("Enter rainfall for quarter " + (i+1) + ": "); 
         rainfall[i] = scan.nextDouble(); 
         totalRainfall += rainfall[i]; 
         if (i == 0)
         {
            max = min = rainfall[i];
         }

         {
            if (rainfall[i] > max) {
               max = rainfall[i];
               maxQuarter = i + 1;
            }
            if (rainfall[i] < min) {
               min = rainfall[i];
               minQuarter = i + 1;
            }
         }
     }

   System.out.println("Total rainfall = "+totalRainfall); 
   System.out.println("Average rainfall = "+(totalRainfall / 4.0)); 
   System.out.println("Max quarter rainfall = "+ max);
   System.out.println("Min quarter rainfall = " + min);

   System.out.println("Max quarter rainfall = "+ maxQuarter);
   System.out.println("Min quarter rainfall = " + minQuarter);

   }//end main 
}//end class

通过这些更改,它可以很好地用于我的基本测试:

Enter rainfall for quarter 1: 2
Enter rainfall for quarter 2: 4
Enter rainfall for quarter 3: 6
Enter rainfall for quarter 4: 7
Total rainfall = 19.0
Average rainfall = 4.75
Max quarter rainfall = 7.0
Min quarter rainfall = 2.0
Max quarter rainfall = 4
Minquarter rainfall = 1

您应该格式化代码(Eclipse中的Ctrl + Shift + f)。

使i索引与最小值和最大值(例如imax,imin)平行。 否则,您将失去像您一样的值的来源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM