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);
添加回答
舉報