2016-12-05 225 views
-2

我想學習一些JAVA,目前我正在做一些基本的程序,我需要從文件中讀取然後找到MIN和MAX值,但在我的代碼中,我只能找到MAX值和MIN值不起作用。它只是顯示我分配的價值。有人能幫助我嗎?這是我的代碼到目前爲止。查找最小值和最大值JAVA

public class uzduotis { 

public static void main(String[] args) { 

    int[] data = fileReading("skaiciai"); 

    System.out.println(Arrays.toString(data)); 

} 

// Reads numbers from file 
public static int[] fileReading(String failas) { 
    int minVal = 0, maxVal = 0; 
    try { 

     File f = new File(failas); 
     Scanner s = new Scanner(f); 
     int ctr = 0; 
     while (s.hasNextInt()) { 
      ctr++; 
      s.nextInt(); 
     } 

     int[] arr = new int[ctr]; 

     Scanner s1 = new Scanner(f); 

     for (int i = 0; i < arr.length; i++) { 
      arr[i] = s1.nextInt(); 
      maxVal = Math.max(maxVal, arr[i]); 
      minVal = Math.min(minVal, arr[i]); 
     } 

     System.out.println("Largest is " + maxVal); 
     System.out.println("Smallest is " + minVal); 
     return arr; 
    } catch (Exception e) { 
     return null; 
    } 
} 

}

+0

學習調試的時間。 – rmlan

回答

1

這可能是因爲您將minVal設置爲0,因此您的正整數輸入都不會比它小。

在聲明你的數組後添加minVal = arr[0];

+0

謝謝老兄...我很笨 – Arnoldas

0

你開始你的MINVAL爲0,已經小數目。將其更改爲大數目是您需要執行的操作。

+0

我真是愚蠢..謝謝.. – Arnoldas

1

你需要這個來代替:

minVal = Integer.MAX_VALUE; 

否則你將永遠不會得到一個較低的數字比你從0開始。