2014-09-20 55 views
0

嗨新的Java新手,並嘗試做一些練習來熟悉它。我正在嘗試使用for each或enhanced for循環來計算用戶輸入數字的總和和平均值。我所做的是將數字存儲在數組中。你可以請檢查我的代碼是否正確。計算每個用戶輸入的平均值

Scanner scanner = new Scanner(System.in); 

double inputNum; 
double sum= 0; 
int counter; 

System.out.println("How many entries would you like input"); 
int entry = scanner.nextInt(); 

for (counter = 0; counter< entry; counter++){ 

    double [] numbers = new double[entry]; 
    System.out.println("Please input number " + (counter +1)); 
    numbers[counter] = scanner.nextDouble(); 

    for (double x : numbers[counter]) { 
     x += sum; 
    } 

    System.out.println("The total sum is: " + sum); 
    double average = sum/entry; 
    System.out.println("The total average is: " + average); 
} 
+0

的for-each並不適用於表達型雙, 需要使用陣列或一些可迭代 – Anptk 2014-09-20 10:06:51

+0

我被檢查到看看是否可以使用每個循環 – Onedaynerd 2014-09-20 10:42:16

回答

1

你不需要內循環。將數據存儲在數組中後,可以將每個輸入添加到總和中。

此外,您應該在外循環外分配一次數組,而不是在每次迭代中分配一次數組。

double [] numbers = new double[entry]; 
for (counter = 0; counter< entry; counter++){  
    System.out.println("Please input number " + (counter +1)); 
    numbers[counter] = scanner.nextDouble(); 
    sum+= numbers[counter]; 
} 
System.out.println("The total sum is: " + sum); 
double average = sum/entry; 
System.out.println("The total average is: " + average); 
+0

但是不需要數組。只需跟蹤總和。 – nmore 2014-09-20 10:05:41

+0

@nmore這也是如此,但也許有更多的代碼需要稍後的數組。 – Eran 2014-09-20 10:08:36

0

將總和和平均邏輯放在循環之外。這應該工作:

double [] numbers = new double[entry]; 
for (counter = 0; counter< entry; counter++){ 
    System.out.println("Please input number " + (counter +1)); 
    numbers[counter] = scanner.nextDouble();  
    sum += numbers[counter]; 
} 

System.out.println("The total sum is: " + sum); 
double average = sum/entry; 
System.out.println("The total average is: " + average); 
0

您不能使用for-each與掃描儀。也不需要你存儲任何東西。只需跟蹤總和。

Scanner scanner = new Scanner(System.in); 

System.out.println("How many entries would you like input?"); 
int numEntries = scanner.nextInt(); 

double sum = 0; 
for (counter = 1; counter <= numEntries; counter++) { 
    System.out.println("Please input number " + counter + ": "); 
    sum += scanner.nextDouble(); 
} 
System.out.println("The total sum is: " + sum); 
System.out.println("The average is: " + sum/numEntries); 
0

相同的代碼,與所述循環外平均值和無用陣列中移除:

Scanner scanner = new Scanner(System.in); 

double sum = 0; 

System.out.println("How many entries would you like input"); 
int entry = scanner.nextInt(); 

for (int counter = 1; counter <= entry; counter++) { 
    System.out.println("Please input number " + counter); 
    sum += scanner.nextDouble(); 
} 

System.out.println("The total sum is: " + sum); 
double average = sum/entry; 
System.out.println("The total average is: " + average);