我编写了一个处理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();
}
}
USPopulation.txt:
151868 153982 156393 158956 161884 165069 168088 171187 174149 177135 179979 182992 185771 188483 191141 193526 195576 197457 199399 201385 203984 206827 209284 211357 213342 215465 217563 219760 222095 224567 227225 229466 231664 233792 235825 237924 240133 242289 244499 246819 249623
答案 0 :(得分:3)
改变这个:
number[i] = inputFile.nextInt();
i++;
total += number[i];
到此:
number[i] = inputFile.nextInt();
total += number[i];
i++;
答案 1 :(得分:0)
我正试图从文本文件中获取平均值 程序符合,但输出结果为0。
你正在进行整数除法。将average
和total
设为double而不是int。