我想打印多少个比平均值大

时间:2019-05-15 16:09:03

标签: java

我已经打印出总数和平均值。但是,我无法打印出大于平均值的数字。

我认为问题是number>= average,似乎只添加了最后一个输入。

public static void main(String[] args) {
        int i;
        int number = 0;
        double total=0;
        double average=0;
        int aboveaverage=0;
        Scanner read = new Scanner (System.in);

        for(i=1;i<9;i++){
            System.out.print("Enter number " + i +": ");
            number=read.nextInt();
            if(number<0){
                System.out.println("Invalid Input");
                break;
            }

            total+=number; 
        } 
        if(number>=average){
            aboveaverage+=1;
            System.out.println("Greater than average is :" + aboveaverage);
        }
        average=total/8;   
        System.out.println("Print total : "+ total);
        System.out.println("Print Average : " +average ); 
    }   
}

1 个答案:

答案 0 :(得分:1)

您将需要收集所有数字(通过将它们放置在int数组中),并遍历所有数字,例如在 for 循环内。

public static void main(String[] args) {
        int i;
        int number = 0;
        int numberCount = 8;
        int[] numberArray = new int[numberCount];
        double total = 0;
        double average = 0;
        int aboveAverage = 0;
        Scanner read = new Scanner (System.in);

        for(i = 0; i < numberCount; i++){
            System.out.print("Enter number " + (i + 1) + ": ");
            number = read.nextInt();
            if(number < 0){
                System.out.println("Invalid input");
                continue;
            }

            numberArray[i] = number;
            total += number;
        }
        average = total / numberCount;

        for(i = 0; i < numberCount; i++){
            if(numberArray[i] > average) {
                aboveAverage++;
            }
        }
        System.out.println("Count of numbers greater than average: " + aboveAverage);
        System.out.println("Print total: " + total);
        System.out.println("Print average: " + average);
}