【发布时间】:2019-11-20 10:35:13
【问题描述】:
我正在尝试从数组中的用户输入中获取总和、平均值、最大值和最小值。 sum、average 和 max 给出了正确的输出。但是最小值不起作用。我在哪里做错了,有人可以帮我找出来吗?
import java.util.Scanner;
public class minMaxSumAverage {
public static void main(String args[]) {
int n, sum = 0, max, min;
double average = 0;
Scanner s = new Scanner(System.in);
System.out.println("Enter elements you want to input in array: ");
n = s.nextInt();
int a[] = new int[n];
max = a[0];
min = a[0];
System.out.println("Enter all the elements:");
for (int i = 0; i < n; i++) {
a[i] = s.nextInt();
sum += a[i];
average = (double) sum/a.length;
if (a[i] > max) {
max = a[i];
}
if (a[i] < min) {
min = a[i];
}
}
System.out.println("Sum is: " + sum);
System.out.println("Average is: " + average);
System.out.println("Max is: " + max);
System.out.println("Min is: " + min);
}
}
输出:
Enter elements you want to input in array:
5
Enter all the elements:
25
5
10
6
4
Sum is: 50
Average is: 10.0
Max is: 25
Min is: 0
最小值应为 4。
【问题讨论】:
-
当您创建一个原始数组时,例如使用
int a[] = new int[n];,所有元素都设置为给定原始数组的默认值。所以这行代码创建了一个大小为 n 的 int 数组,其中所有元素都设置为零。当您在此之后立即执行min = a[0];时,您将 min 初始化为 0,因此您的 min 将始终为零(除非输入负数)。解决此问题的一种简单方法是像这样初始化 min:min = Integer.MAX_VALUE;。这样,您之后输入的每个数字都保证不大于min。
标签: java arrays java.util.scanner min array-sum