2016-12-05 210 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开始。