2012-12-24 51 views
0

我有一個像這樣的家庭工作問題:如何將java中數組的值複製到不包含最小值和最大值的新數組中?

以下數據表示里氏震級數據。編寫一個程序來計算和打印任何有效地震數據的平均值。

將Richter值存儲在名爲quakeLevels的雙精度數組中。

不幸的是,您的地震儀有時會產生不可靠的讀數(如本例中的值10.1)。所以你決定拋出最大和最小的讀數。

你的程序應該做到以下幾點:

  • 聲明並使用下面的數據初始化quakeLevels陣列。 {5.6,6.2,4.0,5.5,5.7,6.1,7.4,8.5,5.5,6.3,6.4,2.1,6.9,4.3,4.1,6.0,10.1}
  • 確定數組中的最大值和最小值。
  • 計算數組內容的平均值,不包括最大值和最小值。
  • 打印數組中的值,但不包括最大值和最小值。
  • 打印平均值。

填寫以下代碼:

我已經試過這個問題,下面的代碼,但我新陣列越來越空值。

public class QuakeLevels { 


    public static void main(String[] args) { 



     Double quakeLevels[] = { 5.6, 6.2, 4.0, 5.5, 5.7, 6.1,7.4, 8.5, 5.5, 6.3, 6.4, 2.1, 6.9, 4.3, 3.1, 7.0, 10.1 }; 
     Double minQuakeLevel = Double.MAX_VALUE; 
     Double maxQuakeLevel = Double.MIN_VALUE; 
     double totalQuakeLevels =0.0; 
     double avgQuakeLevels =0.0; 
     Double[] newQuakeLevels = new Double[(quakeLevels.length-2)]; //array excluding min and max value from the original 
     for(int i=0;i<quakeLevels.length;i++){ 
       totalQuakeLevels+=quakeLevels[i]; 
      if(quakeLevels[i]<minQuakeLevel) { 
       minQuakeLevel=quakeLevels[i]; 
      } 
      if(quakeLevels[i]>maxQuakeLevel){ 
       maxQuakeLevel =quakeLevels[i]; 
      } 


     } 



     avgQuakeLevels = ((double)totalQuakeLevels-(minQuakeLevel+maxQuakeLevel))/(quakeLevels.length-2); // Excluding min and max Quake Levels to calculate average 
     System.out.printf("%s%.1f\n","Average Quake Level= ",avgQuakeLevels); 
     System.out.print("The new quake level:"); 
     for(int i=0;i<quakeLevels.length-2;i++){ 

      if(newQuakeLevels[i]!=minQuakeLevel && newQuakeLevels[i]!=maxQuakeLevel){ 
       quakeLevels[i]=newQuakeLevels[i]; 


     System.out.printf("%6s",newQuakeLevels[i]); 
      } 

     } 
      System.out.println(""); 
     } 
    } 

回答

0

我認爲你設置了錯誤的數組。您正在覆蓋原始數組,但不寫入新數組。

試試這個:

而不是

if(newQuakeLevels[i]!=minQuakeLevel && newQuakeLevels[i]!=maxQuakeLevel){ 
     quakeLevels[i]=newQuakeLevels[i]; 

把這個

if(quakeLevels[i]!=minQuakeLevel && quakeLevels[i]!=maxQuakeLevel){ 
     newQuakeLevels[i]=quakeLevels[i]; 
相關問題