我需要一個數組,該數組從用戶的整數直到輸入「0」;然後打印平均值,最大值和最小值。我寫了一個包含700個元素的數組,並且它打破了。當我輸入0時,一切正常。問題是當我輸入0時,它將0作爲一個元素。我以某種方式解決了這個問題,所以它可以正確計算出平均值,但它仍然需要從某個地方得到0。例如,我輸入8,然後3,然後0,輸出的平均值是4.000000,最大的一個是5,最小的一個是0,但最小的應該是3. 我想這是因爲剩下的697元素被認爲是0.使用掃描儀從陣列中刪除所有的零
我發現了很多這個問題的答案,但我想解決它而不復制數組或創建一個新的。有沒有什麼我可以做,以解決這個問題,而無需添加一個數組或另一個循環或什麼?就像一條線意味着'輸入0時刪除所有剩餘的元素,不要使用它們'?
import java.util.Scanner;
import java.util.stream.IntStream;
public class PlayingWithNumbers2 {
private static Scanner input;
public static void main(String[] args) {
input = new Scanner(System.in);
int[] array = new int[700];
System.out.println("Enter numbers enter 0 to end");
int i;
int max = array[0];
int min = array[0];
int a = array[0];
for (i = 0; i < array.length; i++) {
a=input.nextInt();
if(a==0){
break;
}
array[i] = a;
if(array[i]>max)
max = array[i];
else if(array[i]<min)
min = array[i];
}
double sum = IntStream.of(array).sum();
double Ave = sum/i;
System.out.printf(" The Average is %f \n the biggest one is %d \n the smallest one is %d", Ave, max, min);`
}
}
您輸入8,3和0,但它說:「最大的一個是5」?這是另一個問題。 –