2016-12-05 18 views
-2

私はいくつかのJAVAを学習しようとしていますが、現在いくつかの基本的なプログラムを実行しており、ファイルから読み込んでMIN値と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

あなたは、0に既に少数をあなたのMINVALを開始しました。それを大きな数に変更することは、あなたがする必要があることです。

+0

私はとてもばかげています..ありがとう.. – Arnoldas

1

あなたは代わりに、これを必要とする:

minVal = Integer.MAX_VALUE; 

そうでなければ、あなたがで始まる0より低い番号を取得することはありません。

関連する問題