我的家庭作业有问题,希望能找到一些帮助。
我必须将文本文件读入2D int数组。 2D阵列的宽度固定为5,永远不会改变。但是,数组的高度可能会根据文本文件的长度而改变。
我必须以40x5阵列开始;超过40行的任何文件都是不可接受的,但少于40行就可以了。所以,我可能只填充我的数组的X行(X <= 40)。
我必须计算每列的平均值,所以我需要列中有多少元素;有没有办法得到它? 或者,在知道X是什么之后,我可以将原始数组的大小(包含其中的所有数据)更改为Xx5吗?
示例输入文件:
034 080 055 078 045 060 100 056 078 078 070 010 066 078 056 034 009 077 078 020 045 040 088 078 055输出应该是:
48.6 47.8 68.4 78.0 50.8
答案 0 :(得分:0)
我不建议像这样动态扩展矩阵使用普通数组。我建议您阅读List & ArrayList文档以获得良好的实施。
来自Java doc:
[ArrayList is a] resizable-array implementation of the List interface.
实际上,这是Java对C天不断定义的数组限制的解决方案。
答案 1 :(得分:0)
您需要做的是计算每个单独列的总和(简单;您不需要保持整个状态,只需保留每列的运行总计)加上行数的计数。鉴于此,计算每列的平均值应该很容易。你可以一次只读一行,一次完成所有这些,你的解决方案应该能够处理任何长度的文件。