6 回答

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
我已經(jīng)更新了你的代碼。請(qǐng)檢查以下代碼以從所有元素列表中獲取最小值。
輸入 :
在數(shù)組中輸入要輸入的元素:
5
輸入所有元素:
25
5
10
6
4
輸出 :
總數(shù)是: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貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
從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貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
作為替代方案,您可能需要考慮 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貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
因?yàn)?min 初始化為 0。在你的循環(huán)中,你只需要詢問(wèn)你當(dāng)前的數(shù)字是否小于 0。
再次嘗試將數(shù)組的第一個(gè)值指定為最小值。
然后它應(yīng)該工作。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
int a[] = new int[n];
max = a[0];
min = a[0];
您已經(jīng)創(chuàng)建了一個(gè)空數(shù)組a。max 和 min 都初始化為 0。這對(duì) max 很好用,但給你的結(jié)果是你看到的 min 的結(jié)果,因?yàn)樵谀銊?chuàng)建的數(shù)組中沒(méi)有比零更小的東西。
要解決此問(wèn)題,請(qǐng) min = a[0];在用值填充數(shù)組后將行添加到 for 循環(huán)中,例如
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]將不再為零,而是填充數(shù)組的第一個(gè)值。

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
請(qǐng)參考下面的代碼,了解最小、最大、總和、平均功能:
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);
添加回答
舉報(bào)