从文件中确定偶数

时间:2014-08-31 01:26:49

标签: java file-io

先生,好日子先生。我的老师告诉我们从输入文件中取出所有偶数。但是偶数一直在告诉我它是23个平均值,它应该是8和66.67%。我对文件的输入是:

5 7 2 8 9 10 12 98 7 14 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;

    }  
}

1 个答案:

答案 0 :(得分: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)

此外,您应该将evenCount传递给evenNumber方法而不是计数,否则您将增加所有数字的数量,而不是只计算偶数的数量。