2016-12-05 11 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, что вы начинаете с.

Смежные вопросы