Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何计算从控制台读取的整数序列的平均值?_Java_Eclipse_Average - Fatal编程技术网

Java 如何计算从控制台读取的整数序列的平均值?

Java 如何计算从控制台读取的整数序列的平均值?,java,eclipse,average,Java,Eclipse,Average,为了计算用户输入的数字的平均值,我的代码中缺少了什么 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; float average; do { System.out.print("Enter a number: "); n = scanner.nextInt(); System.out.p

为了计算用户输入的数字的平均值,我的代码中缺少了什么

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n;
    float average;
    do {
        System.out.print("Enter a number: ");
        n = scanner.nextInt();
        System.out.println("Your number is " + n);
    } while (n != 0);

    if (n == 0) {
        System.out.println("The average is : " + n);
    }

    scanner.close();
}

}

当用户输入“0”时,程序应该计算用户输入的数字的平均值,这就是为什么我写了“while(n!=0)”。

您应该这样做: 注意,当你还有一个数字(0)时,你必须考虑通过移除它来计算平均值,因为你需要0来完成这个程序。 公共类测试{

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n;
    double average = 0;
    int qtdNums = 0;
    do {
        System.out.print("Enter a number: ");
        n = scanner.nextInt();
        System.out.println("Your number is " + n);

        average = average + n;
        qtdNums++;
    } while (n != 0);

    if (n == 0) {
        System.out.println("The average is : " + average / (qtdNums - 1));
    }

    scanner.close();
}
}

您实际上并没有使用正在读取的数字。一个好的编辑器会在您运行它之前告诉您这一点。我会研究如何获取IDE。您会希望执行类似于所建议的操作。我会说,可能最好将数字添加为整数,然后稍后再强制转换,这样您就不会丢失浮点运算的准确性ing point additions,在某些情况下会给您带来很多痛苦(但在这里您可能很好)。以下是我建议的代码,根据jhenrique的答案修改:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int n;
    int sum = 0;
    int count = 0;
    do {
        System.out.print("Enter a number: ");
        n = scanner.nextInt();
        System.out.println("Your number is " + n);

        sum += n;
        count++;
    } while (n != 0);

    System.out.println("The average is : " + ((double) sum) / (count - 1));

    scanner.close();
}

double
类似于
float
,但更准确。在循环中,我将每个读取的数字加在
sum
上,然后除以最后读取的内容数,得到平均值。

谢谢你的帮助,它工作正常!但我不太明白为什么qtdNums-1?是0-1?以及qtdNums++。你能解释一下吗请这么快告诉我:)?你考虑的是所有数字的平均值。假设用户输入5个数字加上要停止的0,那么你总共有6个,但你只需要5个来计算平均值。这就是为什么你必须删除1@Larry见我的导出答案(我给了杰恩里克学分)是的,我明白了,你的两个代码都很好用,但是你的代码更容易理解!无论如何,我感谢你的帮助和很好的解释!!