【问题标题】:I want to print how many number is greater than the average我想打印有多少数字大于平均值
【发布时间】:2019-05-15 16:09:02
【问题描述】:

我已经打印了总数和平均值。但是我无法打印出有多少数字大于平均值。

我认为问题出在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 ); 
    }   
}

【问题讨论】:

  • 您必须收集List&lt;Integer&gt; 中的所有数字,以便在知道平均值后再次扫描它们。或者,由于您知道您将拥有多少个号码,您可以使用int[]
  • @Andreas 如果元素数量已知,则不需要List
  • @MaximeLaunois 是的,我也刚刚意识到这一点,所以要加强评论。 :-)
  • 除了数组有没有解决办法?我也觉得数组可能更容易做?
  • @zerofour 您必须以某种方式保存这些值,以便在计算出average 后再次扫描它们。数组是最好的选择,但需要你知道你会得到多少个数字。如果您事先不知道会得到多少个号码,List 将是最佳选择。

标签: java


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多