我正在尝试学习一些JAVA,目前我正在做一些基本程序,我需要从文件中读取然后找到MIN和MAX值,但在我的代码中我只能找到MAX值而MIN值不会工作。它只显示我指定的值。有人能帮助我吗?到目前为止,这是我的代码。
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 :(得分:1)
这可能是因为您将minVal设置为0,因此您的正整数输入都不会小于它。
在声明数组后添加minVal = arr[0];
。
答案 1 :(得分:1)
你需要这个:
minVal = Integer.MAX_VALUE;
否则你永远不会得到一个低于0的数字。
答案 2 :(得分:0)
您已将minVal设为0,这是一个已经很小的数字。将其更改为大量是您需要做的。