没有导致控制台,很可能是逻辑错误

时间:2013-11-21 06:22:24

标签: java arrays java.util.scanner mean standard-deviation

我对OOP世界相对较新,出于某种原因,IntelliJ和Eclipse的控制台在控制台中没有为我提供以下程序的输出。我尝试使用扫描仪将12个数字存储到数组中,并找到标准差,平均值,最小数和最大数。谁能发现什么错?

import java.util.Arrays;
import java.util.Scanner;

public class untitled
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int[] grades = new int[12];
        int size = grades.length;
        for (int i = 0; i < size; i++)
        {
        grades[i] = in.nextInt();
        }

        Arrays.sort(grades);
        int low = grades[0];
        int high = grades[11];
        int sum = 0;
        for (int i: grades)
        {
            sum += i;
        }
        int m = sum / size;

        double var = 0;
        double variance;
        double sd;

        for (int i = 0; i < size; i++)
        {
            var = var + ((grades[i] - m) * (grades[i] - m));
        }
        variance = (int) var / size;
        sd = Math.pow(variance,.5);


        String lowest = ("Lowest Grade:" + low);
        String highest = ("Highest Grade:" + high);
        String average = ("Average Grade:" + m);
        String standdev = ("Standard Dev.:" + sd);

        System.out.println(lowest);
        System.out.println(highest);
        System.out.println(average);
        System.out.println(standdev);
    }
}

感谢。

2 个答案:

答案 0 :(得分:0)

你所做的就是接受12个输入..尝试在控制台输入12个输入然后你的输出就会出现..

是的,这似乎没有使用OOP概念。有关OOPS的更多信息,请参阅此链接:

http://en.wikipedia.org/wiki/Object-oriented_programming

答案 1 :(得分:0)

问题是,在计算和输出可以继续之前,您需要先输入值。

,如果控制台上没有打印文本(例如“输入新号码:”),控制台将保持空白状态。

您可以输入12个数字,也可以使用Random值自动填充列表。在这种情况下,输出将立即在控制台上可见。

...
nt[] grades = new int[12];
int size = grades.length;

Random random = new Random();
for (int i = 0; i < size; i++) {
    grades[i] = random.nextInt(15); // value between 0 and 14
}

Arrays.sort(grades);
int low = grades[0];
...