我需要能够显示行中的Average,ColumnTotal,最高/最低行RowTotal。我不确定它是否取决于我在必须更改的方法本身中所做的事情,或者我是否可以简单地用正确的参数调用它们来从文件中读取。它从中读取的文本文件基本上只输入两个由同一行上的空格分隔的整数,这些是我希望能够输入的参数。我不完全确定如何做到这一点。这只是一本学院教科书的作业,基本上由我的导师称为“TwoDimArray”,我已经能够找到很多在线的例子,但是他们都没有我在这里必须做的“从文件读取”部分,他们都只使用了正常的数组输入,例如“int [] [] array = {{22,37,48,68}}作为主方法。我将包括整个程序,以便准确显示我需要通过println进行展示。我一直在考虑如何做这几个小时,并决定我肯定需要帮助。非常感谢任何帮助!提前致谢。
orientdb> LIST CLUSTERS
}
答案 0 :(得分:1)
0)在项目的根目录中创建numbers.txt
。这是您将从中加载数组的文件。示例内容如下(2行,3列):
2 3
1 2 3
4 5 6
1)您不需要明确创建的int[][] array = ???
,因为已经存在private int arr[][]
,在您按照{预期的名称]输入其名称后,它将自动从文件加载{1}}构造函数。
2)由于TwoDimArray
方法与main
位于同一个类,因此您可以在不使用公共getter / setter的情况下访问此私有数组,并获得如下平均值:
private int arr[][]
3)您可能感到困惑,因为// you don't need following line at all
// int[][] array = ???;
TwoDimArray twoDimArray = new TwoDimArray();
System.out.println("Max value: " + twoDimArray.getArrayMaxValue()); // Max value: 5
System.out.println("Min value: " + twoDimArray.getArrayMinValue()); // Min value: 1
// Average value
System.out.println(getAverage(twoDimArray.arr)); // 3, because 21 / 6 = 3
已签名为getArrayMaxValue
,并被调用为public int
,而twoDimArray.getArrayMaxValue()
为getAverage
且必须被调用以不同的方式。
我建议将public static int
标记为getAverage
而不是public int
,并使用public static int
代替参数提供的private int arr[][]
,这样您就可以调用它与其他方法一样:
int[][] array
答案 1 :(得分:0)
基本上,你所拥有的是一个锯齿状数组,它不是一个二维数组。我会解释你的想法,你做其余的事情。它不是一个二维数组。这是一个数组数组,在每个位置指向一个新的int数组。如果您从未在每个位置上实例化新数组,那么您将拥有一个空值的位置。
回过头来看你的问题,你应该用同一行上的两个整数读取整行。确保文件中的行在第一行中有2个用空格分隔的数字。
然后使用next()
方法获取完整的字符串
String line = in.next();
String[] parts = line.split(" ");
int val1 = Integer.parseInt(parts[0]);
int val2 = Integer.parseInt(parts[1]);
对于这个问题: 放在int [] []数组中的内容,以允许println的平均值,getrowtotal,
int[][] array = new int[4];
array[0] = new int[] {10,20,30,40,50};
array[1] = new int[] {60,71,80,90,91};
array[2] = new int[] {1};
希望这有帮助
现在,你认为你在阵列[3]中有什么?答案是:NULL
答案 2 :(得分:0)
你已经在方法loadArray中从文件中读取了数组... 使用它而不是尝试再次加载相同的东西,从所有方法中删除静态修饰符并使用字段arr而不是参数数组
private int getTotal() {
int total = 0;
for (int row = 0; row < arr.length; row++) {
for (int col = 0; col < arr[row].length; col++) {
total += arr[row][col];
}
}
return total;
}
private int getAverage() {
return getTotal() / getElementCount();
}
private int getElementCount() {
int count = 0;
for (int row = 0; row < arr.length; row++) {
count += arr[row].length;
}
return count;
}
public static void main(String[] args) {
TwoDimArray twoDimArray = new TwoDimArray();
System.out.println("Max value: " + twoDimArray.getArrayMaxValue());
System.out.println("Min value: " + twoDimArray.getArrayMinValue());
System.out.println(twoDimArray.getAverage());
}