浮动整数数组Java代码

时间:2014-12-09 22:54:35

标签: java arrays

完整分配是:将10个浮点数作为输入,并显示数字的平均值,然后显示大于平均值的所有数字。我能够很容易地获得平均值,但是当我无法打印出大于平均值的数字时。我之前尝试了一些东西,但改变了它,因为它只是打印出一个内存位置而不是实际的数字。任何帮助表示赞赏。

如果我在前面提到的问题中不清楚:目前我的代码输出用户输入数字时的平均值,并将其与新数字进行比较。我想要做的是将输入的所有数字与所有10个数字的最终平均值进行比较。我不太确定如何做到这一点。

import java.util.Scanner;
public class ArrayProgram2
{
    public static void main(String[]args)
    {
        Scanner scan = new Scanner(System.in);
        double [] numberList = new double[10];
        double [] largerList = new double [10];
        int largerCounter = 0;
        double sum = 0;

        for(int i = 0; i < 10; i++){
            System.out.println("Please enter any number");
            double data = scan.nextDouble();
            numberList[i] = data;
            sum += numberList[i];
            double average = sum/numberList.length;

            if(data > average){
                largerList[largerCounter] = data;
                largerCounter++;
            }

        }
        for(int i = 0; i <largerCounter; i++){
            System.out.println("The numbers greater than the average are " + " " + largerList[i]);
        }
        double average = sum/numberList.length;
        System.out.println("The average of the numbers is " + average);
    }//main

}//class

3 个答案:

答案 0 :(得分:0)

您的代码将在循环结束时获得最终平均值(所有10个元素将相加,然后除以10)。第二个循环通过输入double来比较它们的最终平均值是你需要的。

    for(int i = 0; i <numberList; i++){
        if (numberList[i] > average) {
            largerList[largerCounter] = data;
            largerCounter++;
        }
    }
在获得所有输入(您的第一个循环)后,

应立即进行

答案 1 :(得分:0)

在计算平均值之前,你应该计算正好总和,此时你计算第一个数字的平均值,然后是前2个数字,然后是前3个等等。第一个{{1除非(如第一个评论所述)您想要将当前数字与当前平均值进行比较,否则不需要:

double average = sum/numberList.length;

如果您想检查哪些数字大于整体平均值,请更改

for(int i = 0; i < 10; i++){
    System.out.println("Please enter any number");
    double data = scan.nextDouble();
    numberList[i] = data;
    sum += numberList[i];

    /*Not needed
    double average = sum/numberList.length;

    if(data > average){
        largerList[largerCounter] = data;
        largerCounter++;
    */
    }

}

类似于:

for(int i = 0; i <largerCounter; i++){
        System.out.println("The numbers greater than the average are " + " " + largerList[i]);
}
double average = sum/numberList.length;
System.out.println("The average of the numbers is " + average);

答案 2 :(得分:-1)

试试这个:

import java.util.Scanner;
public class ArrayProgram2
{ 
public static void main(String[]args)
{
    Scanner scan = new Scanner(System.in);
    double [] numberList = new double[10];
    double [] largerList = new double [10];
    int largerCounter = 0;
    double sum = 0;

    for(int i = 0; i < 10; i++){
        System.out.print("Please enter any number: ");
        numberList[i] = scan.nextDouble();
        sum += numberList[i];
    }    
    double average = sum/numberList.length;
    for(int i = 0; i < 10; i++){
        if(numberList[i] > average){
            largerList[largerCounter] = numberList[i];
            largerCounter++;
        }
    }
    for(int i = 0; i <largerCounter; i++){
        System.out.println("The numbers greater than the average are " + " " + largerList[i]);
    }
    System.out.println("The average of the numbers is " + average);    
}//main
}//class