gpt4 book ai didi

java - 查找大于平均值的数字 - 为什么我的 IF 语句不能正常工作?

转载 作者:搜寻专家 更新时间:2023-11-01 04:01:11 24 4
gpt4 key购买 nike

我正在测试一个包含随机生成数字的不同文本文件的程序。 Java 程序被构建为将文本文件中的这些数字加在一起,取这些数字的平均值,然后(使用 IF 语句)从文本文件中找到大于平均值的数字,将所述值放入 ArrayList,并打印平均值和 ArrayList 作为输出。但是,出于某种原因,当我使用不同的文本文件运行我的程序时(我使用两个文件进行了测试,其中一个有效,而另一个目前无效)。 shell 中打印的结果不正确 - 大多数值都大于平均值,但我得到了一些不正确的值,并且最多相差三个。

这是我的代码:

package homework.pkg23.average;

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;

public class Homework23Average {

public static void main(String[] args) {
ArrayList exes = new ArrayList ();
double x = 0;
double y = 0;
Scanner inputStream = null;

try {
inputStream = new Scanner (new File ("MyInput.txt"));
}
catch (FileNotFoundException e) {
System.out.println ("File not found, program aborted:");
System.exit (1);
}
int count = 0;
while (inputStream.hasNextDouble ()) {
count ++;
x = inputStream.nextDouble ();
y += x;
if (x > y/count) // x values greater than the mean
exes.add (x);
}
System.out.println ("The value(s) greater than the mean, "
+ y/count + ", are (is):");
exes.forEach (System.out::println);
inputStream.close ();
}

}

当从文件中运行这个时,我得到了 79.67 的平均值,但我的输出看起来像这样:

The value(s) greater than the mean, 79.67, are (is):
128.0
93.0
143.0
111.0
95.0
116.0
136.0
129.0
141.0
78.0 <-- NOTICE: value is less than the average
93.0
105.0
90.0
90.0
144.0
116.0
136.0
138.0
75.0 <-- NOTICE: value is less than the average
80.0
126.0
75.0 <-- NOTICE: value is less than the average
80.0
98.0
114.0
116.0
86.0
78.0 <-- NOTICE: value is less than the average
123.0
145.0
103.0
111.0
91.0
134.0
119.0
91.0
121.0
113.0
129.0
91.0
116.0
85.0
85.0
126.0
145.0
98.0
115.0
83.0
127.0
119.0
97.0
125.0
121.0
123.0
86.0
108.0
100.0
134.0

我一辈子都弄不明白为什么这些值(value)观正在流失。我在另一个包含较少输入值的文本文件上测试了这个程序,一切正常。我是 Java 的新手,因为这是我继“Hello World”程序之后的第二个程序,而且我对 Java 语法的了解并不广泛。

最佳答案

您将值与运行平均值进行比较,而不是最终平均值。第 n 个项目的比较不考虑第 n+1 个项目及以后的项目。

关于java - 查找大于平均值的数字 - 为什么我的 IF 语句不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27194138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com