Java 平均水平及以上

标签 java arrays average

我正在编写一个程序,您必须找到用户输入的 10 个整数的平均值,然后让程序告诉我用户输入的数字实际上高于平均值,然后实际打印这些数字。我对它告诉我什么高于平均水平以及哪些数字有疑问。相反,在计算平均值之后,它只是在输出中不断给我类似的内容

有 0 个数字高于平均水平 这些数字是:0

我做错了什么?

public class Average {
static Scanner keyboard = new Scanner(System.in);
static int sum = 0, aboveAverage;
static double average;

public static void main(String[] args) {
    int[] listOfInt = new int[10];// 10 integers MAX

    System.out.println("Enter " + listOfInt.length + " integers: ");
    for (int count = 0; count < listOfInt.length; count++) {
        listOfInt[count] = keyboard.nextInt();
    }
    for (int count = 0; count < listOfInt.length; count++) {
        sum = sum + listOfInt[count];
    }
    average = sum / listOfInt.length;// sum divided by 10
    System.out.println("Average: " + average);

    if (aboveAverage > average);

    System.out.println("There are " + aboveAverage+ " numbers above the average");
    System.out.println("Those numbers are: " + aboveAverage);
}

}

最佳答案

您的if block 以分号终止;你可以像这样修复它

if (aboveAverage > average) { //;
  System.out.println("There are "+aboveAverage+" numbers above the average");
  System.out.println("Those numbers are: " + aboveAverage);
}

编辑

在检查其余代码时,我认为您确实需要类似的东西(使用 diamond operator <> )

double average = ((double) sum) / listOfInt.length;// sum divided by 10
System.out.printf("Average: %.2f%n",  average);
List<Integer> aboveAverage = new ArrayList<>();
for (int v : listOfInt) {
    if (v > average) {
        aboveAverage.add(v);
    }
}
System.out.printf("There are %d numbers above the average%n",
        aboveAverage.size());
System.out.printf("Those numbers are: %s%n", aboveAverage);

编辑2

综合起来,

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    int[] listOfInt = new int[10];// 10 integers MAX

    System.out.println("Enter " + listOfInt.length + " integers: ");
    for (int count = 0; count < listOfInt.length; count++) {
        listOfInt[count] = keyboard.nextInt();
    }
    int sum = 0;
    for (int i : listOfInt) {
        sum += i;
    }
    double average = ((double) sum) / listOfInt.length;
    System.out.printf("Average: %.2f%n", average);
    List<Integer> aboveAverage = new ArrayList<>();
    for (int v : listOfInt) {
        if (v > average) {
            aboveAverage.add(v);
        }
    }
    System.out.printf("There are %d numbers above the average%n",
            aboveAverage.size());
    System.out.printf("Those numbers are: %s%n", aboveAverage);
}

关于Java 平均水平及以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26766273/

相关文章:

ios - xcode swift 3D 数组

php - 我们为什么要获取对象?

php - MYSQL PHP获取单个字段的平均值

java - 关闭 JFreeChart 条形图中的空白区域

Java 在进程中执行某事

c++ - 是否有一种算法可以在排序数组中搜索不包括一个复杂度为 O(lgn) 的指定数字的元素?

Mysql查询总和并求平均值

SQL AVG() 函数返回不正确的值

java - Java 是 "pass-by-reference"还是 "pass-by-value"?

java - 在 JFrame 中自动调整 JPanel 的大小