2014-08-31 60 views
-1

美好的一天先生。我的老師告訴我們從輸入文件中取出所有偶數。但偶數告訴我,它是23個平均值,應該是8和66.67%。我從文件中輸入:從文件中確定偶數

5 7 2 8 9 10 12 98 14 7 20 22(含空格)

,我的代碼是:

import java.io.*; 

import java.util.*; 

public class number2 { 

    public static void main (String[] args) throws FileNotFoundException{ 
     Scanner input = new Scanner(new File("number.txt")); 
     int sum = 0; 
     int count = 0; 
     int evenCount = 0; 
     float percent = 0; 
     while(input.hasNextInt()) { 
      int num = input.nextInt(); 
      sum+=num; 
      count++; 
      evenCount = evenNumber(num, count); 
     } 
     percent = (evenCount*100)/count; 
     System.out.println("\n" +count + " Numbers, " + "Sum = " +sum); 
     System.out.println(evenCount + " evens " +"(" + percent +"%)"); 
    } 

    public static int evenNumber(int counter, int number){ 
     if(number%2==0) 
      counter++; 
     return counter; 

    } 
} 

回答

0

我認爲,我們在調用evenNumber方法與參數切換...

while(input.hasNextInt()){ 
    int num = input.nextInt(); 
    sum+=num; 
    count++; 
    //first parameter is number read from file, second parameter is the current count 
    evenCount = evenNumber(num, count);} 
    //... 

在你的方法evenNumber方法簽名你有

//first parameter is the counter, second parameter is the read number 
public static int evenNumber(int counter, int number) 

您應該切換的參數被稱爲在while塊evenNumber方法中: evenCount = evenNumber(evenCount, num)

此外,你應該通過evenCountevenNumber方法,而不是數量,否則你就會越來越所有的計數數字,而不是偶數的計數。