【问题标题】:Calculate Average values from file从文件计算平均值
【发布时间】:2015-03-27 21:56:59
【问题描述】:

我有一个包含 5 列的文本文件,每列中有 9 个整数。 看起来像这样: 1 2 3 4 5 6 7 8 9 我使用 File 将纺织品导入我的 java 程序

fileName = new File("Example1.txt");
Scanner inFile = new Scanner(fileName);

我想计算每一列的平均值,我该怎么做?我在想

    int index;
            index = 0;
        if (inFile.hasNext()) {
                    do {
                        Example[index] = inFile.nextInt();
                        index++;

                    } while (inFile.hasNext());
                }
inFile.close();

如何找到平均值?

【问题讨论】:

  • ...找到什么的平均值?
  • @Matthias 每列。他说得很清楚
  • 有一个数组来存储每列元素的总和。然后将数组的每个元素除以每列中的元素数。结果数组的每个元素都是相应列的平均值。
  • @CandiedOrange 哦,我错过了那句话。
  • @lodo 有一个很好的计划。每次获得换行符时,您都需要将索引重置到数组中。您需要记录行数。

标签: java file-io average


【解决方案1】:

我没有时间检查这个,所以可能有问题。在你信任它之前测试它。

无论如何,考虑使用 mod % 来帮助简化这个问题。我主要是在重用 Beth 的代码。

int index = 0;
int numRows = 0;
int columnTotals[5];
while (inFile.hasNext()) {
    columnTotals[index%5] += inFile.nextInt();
    index++;
}
inFile.close();
numRows = index / 5

for (int i = 0; i < 5; i++) {
    System.out.println(columnTotals[i]/(numRows));
}

请注意,最后一行正在执行整数除法。您可能需要转换为 double 以获得更详细的平均值。

【讨论】:

    【解决方案2】:

    一系列数字的平均值是它们的总和除以数字的数量。

    这应该是一个简单的修改,从循环遍历并将数字存储在数组中,循环遍历每组 5x9 数字并计算每列的总数,然后在最后除以 (9 * numLines)。

    int index = 0;
    int numRows = 0;
    int columnTotals[5];
    while (inFile.hasNext()) {
        for (int col = 0; col < 5; col++) {
            for (int i = 0; i < 9; i++) {
                columnTotals[col] += inFile.nextInt();
            }
        }
        numRows++;
    }
    inFile.close();
    
    for (int i = 0; i < 5; i++) {
        System.out.println(columnTotals[col]/(9*numRows));
    }
    

    【讨论】:

    • OP 要求的是列平均值,而不是行平均值。
    • 真正的解决方案将涉及两个循环。每行一个,一行中的每一列一个。
    • @CandiedOrange 我在 lodo 发表评论后将其更改为完全一样。
    • 我认为你的循环有问题。然后你会得到一排,另一排。您的代码需要一列,然后是另一列。
    【解决方案3】:

    aver[x] = Example[x].sum() / Example[x].count()

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 2015-01-08
      • 2013-07-19
      • 1970-01-01
      相关资源
      最近更新 更多