Java 计算从文本文件读取的总体数据的平均值

Java 计算从文本文件读取的总体数据的平均值,java,Java,我写了一个程序,处理1950年到1990年的人口数据。我试图从文本文件中得到平均值。程序中的所有内容都可以编译,但输出结果是0。为什么这不起作用 以下是我编写的Java程序: import java.util.Scanner; import java.io.*; public class PopulationData { public static void main(String[] args) throws IOException { final int SIZE = 42;

我写了一个程序,处理1950年到1990年的人口数据。我试图从文本文件中得到平均值。程序中的所有内容都可以编译,但输出结果是0。为什么这不起作用

以下是我编写的Java程序:

import java.util.Scanner;
import java.io.*;
public class PopulationData
{
  public static void main(String[] args) throws IOException
  {
    final int SIZE = 42;
    int[] number = new int[SIZE];
    int i = 0;
    int total = 0;
    int average;

    File file = new File("USPopulation.txt");
    Scanner inputFile = new Scanner(file);

    while (inputFile.hasNext() && i < number.length)
    {
       number[i] = inputFile.nextInt();
       i++;
       total += number[i];
    }

    average = total / number.length;

    System.out.println("The average annual change in population is: " + average);

    inputFile.close();
  }
}
我试图从一个文本文件中得到所有数据的平均值 程序符合要求,但输出结果为0

你在做整数除法。将
平均值
总值
加倍,而不是整数。

更改此项:

 number[i] = inputFile.nextInt();
 i++;
 total += number[i];
为此:

 number[i] = inputFile.nextInt();
 total += number[i];
 i++;

请发布一个USPopulation.txt文件的示例,在将
number[i]
添加到总数之前,请先增加
i
,这样您就跳过了第一个值。我也不知道你是不是因为被要求这么做,但您不需要阵列来执行此操作。151868 153982 156393 158956 161884 165069 168088 171187 174149 177135 179979 182992 185771 188483 191141 193526 195576 197457 199399 201385 203984 206827 209284 211357 21342 215465 217563 219760 222567 227466 231664 233792 235825 237924 240133 242289 244499 246819 249623这就是其中的内容文本文件sorryPopulation Data Java strange question Title与问题正文代码不相关。@LKTN.25找到了一个修复程序,该程序只能通过截断为整数来对结果进行舍入,但这不是结果为零的原因。@ErwinBolwidt,当我发布我的答案时,OP没有给出他现在给出的其他细节。
 number[i] = inputFile.nextInt();
 total += number[i];
 i++;