【发布时间】:2023-03-13 23:02:02
【问题描述】:
我正在编写一个程序来从用户那里获取三个数字并将其放入一个数组列表中并找到总和、平均值、最小值和最大值。我在找到最小值时遇到问题。当我运行代码时,最小值始终为零。我该如何解决这个问题?
int num = 0;
int sum = 0;
int avg = 0;
int min = 0;
int max = 0;
int i = 0;
ArrayList<Integer> array = new ArrayList<Integer> ();
Scanner input = new Scanner (System.in);
for (i = 0; i < 3; ++i){
System.out.println("Enter a number");
num = input.nextInt();
array.add(num);
sum += num;
if(num > max){
max = num;
}
if(num < min){
min = num;
}
}
avg = sum / i;
System.out.println("Sum: " + sum);
System.out.println("Avg: " + avg);
System.out.println("Max: " + max);
System.out.println("Min: " + min);
//Code Result
//Enter a number
// 10
//Enter a number
// 20
//Enter a number
// 30
//Sum: 60
//Avg: 20
//Max: 30
//Min: 0 <-- this is always zero
}
【问题讨论】:
-
而不是
int min = 0;使用int min = Integer.MAX_VALUE; -
在你here之前几分钟就有一个类似的问题。
-
(练习的重点可能完全是另一回事 - 想想 Stream。)(Blackbelt 的评论类似地适用于
max。)