2013-12-10 107 views
-4

我是新來的java,我試圖從我的文件打印我的唯一數字大於平均值。如何只打印大於平均值的數字?

3.2 
    7.5 
    1.11 
    9.4 

平均:4.8525

double x; 

Scanner inputStream = null; 

try { // place file in project folder, not src; 
    inputStream = new Scanner(new File("Data.txt")); 
} catch(FileNotFoundException e) { 
    System.out.println("Error opening file"); 
    System.exit(1); 
} 

while(inputStream.hasNextDouble()){ 
    x = inputStream.nextDouble(); 
    System.out.println(x); 
} 

inputStream.close(); 
+4

您開始寫代碼,甚至?打印之前有什麼條件的If條件? –

+0

將值讀入列表中。根據列表中的值計算平均值。僅在列表中的項目大於平均值時纔打印列表中的項目。 – slipperyseal

回答

0
while(inputStream.hasNextDouble()){ 
x = inputStream.nextDouble(); 
    if(x > 4.8525){ 
    System.out.println(x); 
    } 
} 
+1

我認爲練習的目的是存儲所有值,計算平均值,然後僅打印大於計算平均值的值。 (或者讀取文件兩次 - 但這會吸引) – slipperyseal

4
  1. 起初,你需要在ArrayList數據存儲,如果你不知道數據的大小。

    List<Double> list=new ArrayList<>(); 
    while(inputStream.hasNextDouble()){ 
    list.add(inputStream.nextDouble()); 
    } 
    
  2. 計算值的總和。

    double sum=0.0; 
    for(Double val: list){ 
        sum+= val; 
    } 
    
  3. 遍歷列表並打印大於平均值的值。

    for(Double val: list){ 
        if(val> sum/list.size()){ 
        System.out.println(val); 
        } 
    } 
    
相關問題