6 回答
TA贡献1863条经验 获得超2个赞
我已经更新了你的代码。请检查以下代码以从所有元素列表中获取最小值。
输入 :
在数组中输入要输入的元素:
5
输入所有元素:
25
5
10
6
4
输出 :
总数是:50
平均值为:10.0
最大值为:25
最小值为:4
Scanner scan = null;
try {
int n, sum = 0, max, min;
double average = 0;
scan = new Scanner(System.in);
System.out.println("Enter elements you want to input in array: ");
n = scan.nextInt();
int a[] = new int[n];
max = a[0];
System.out.println("Enter all the elements:");
for (int i = 0; i < n; i++) {
a[i] = scan.nextInt();
sum += a[i];
average = (double) sum/a.length;
if (a[i] > max) {
max = a[i];
}
/**
// from here remove logic for get min value.
if (a[i] < min) {
min = a[i];
}
**/
}
min = a[0];
for(int i=0;i<a.length;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);
}
catch (Exception ex) {
ex.printStackTrace();
}finally{
scan.close();
}
TA贡献1786条经验 获得超11个赞
从Java-8开始,您可以使用流在一行中完成此操作:
int[] a = new int[] { 20,11,2,3,4,7,8,90 }; int min = Arrays.stream(a).min().getAsInt();
要获取最大元素,只需将其替换.min()
为.max()
获得总和:Arrays.stream(a).mapToInt(Integer::intValue).sum();
TA贡献2003条经验 获得超2个赞
作为替代方案,您可能需要考虑 Stream...
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
System.out.println("Enter count elements you want to input in array: ");
int n = s.nextInt();
int a[] = new int[n];
System.out.println("Enter all the elements:");
for (int i = 0; i < n; i++) {
a[i] = s.nextInt();
}
s.close();
IntSummaryStatistics iss = Arrays.stream(a).summaryStatistics();
System.out.println("Sum is: " + iss.getSum());
System.out.println("Average is: " + iss.getSum()/iss.getCount());
System.out.println("Max is: " + iss.getMax());
System.out.println("Min is: " + iss.getMin());
}
TA贡献1828条经验 获得超3个赞
int a[] = new int[n];
max = a[0];
min = a[0];
您已经创建了一个空数组a。max 和 min 都初始化为 0。这对 max 很好用,但给你的结果是你看到的 min 的结果,因为在你创建的数组中没有比零更小的东西。
要解决此问题,请 min = a[0];在用值填充数组后将行添加到 for 循环中,例如
for (int i = 0; i < n; i++) {
a[i] = s.nextInt();
sum += a[i];
average = (double) sum/a.length;
min = a[0];
//if-statements here
然后,min = a[0]将不再为零,而是填充数组的第一个值。
TA贡献1789条经验 获得超10个赞
请参考下面的代码,了解最小、最大、总和、平均功能:
List<Integer> intList= Arrays.asList(70, 80, 10, 20, 40, 50);
Integer ans=0;
int sum1= intList.stream().reduce(ans, (x,y) -> x+y);
System.out.println(sum1);
int sum2= intList.stream().reduce(ans, Integer::sum);
System.out.println(sum2);
int max= intList.stream().max(Integer::compare).get();
System.out.println(max);
int min= intList.stream().min(Integer::compare).get();
System.out.println(min);
Double avg= intList.stream().collect(Collectors.averagingInt(x-> x));
System.out.println(avg);
添加回答
举报