如何解决如何计算二维数组的平均值?
我想知道二维数组中的平均值计算是否与一维数组相同?我还能看到它的java代码吗?这就是我所拥有的,但我没有得到正确的答案。
static int avgRecursion(int a[][],int i,int j,int f) {
// Last element
if (i == f - 1)
return a[i][j];
// When index is 0,divide sum computed so far by n.
if (i == 0)
return ((a[i][j] + avgRecursion(a,i + 1,j,f)) / f);
// Compute sum
return (a[i][j] + avgRecursion(a,f));
}
static int[][] array;
static {
array = new int[3][4];
System.out.println("Enter 12 numbers: ");
Scanner scan = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
array[i][j] = scan.nextInt();
}
}
int f = array.length;
int average = avgRecursion(array,f);
System.out.println("The average of the 2D array: " + average);
}
解决方法
我猜您想找到存储在二维数组中的所有值的平均值。这是一个小程序:
public static void main(String[] args) {
int[][] arr = new int[4][5];
int sum = 0;
// Length * Breadth gives total number of elements in array
int arrLength = (arr.length * arr[0].length);
// Populate array
// Your program gets the values from the user
// but i'm hardcoding them. Hope you get the point
for (int row = 0; row < arr.length; row++) {
for (int col = 0; col < arr[row].length; col++) {
arr[row][col] = 20;
}
}
// Actual answer starts here
// Calculate sum of all values stored in the array
for (int row = 0; row < arr.length; row++) {
for (int col = 0; col < arr[row].length; col++) {
sum += arr[row][col];
}
}
// Print total sum / length of array
System.out.print("The average of the 2D array is " + sum / arrLength);
}
,
您可以像往常一样将二维数组展平为一维并取一维数组的平均值:
int[][] arr = {{1,2,3,4,5},{6,7,8},{9}};
double avg = Arrays.stream(arr)
.flatMapToInt(Arrays::stream)
.average()
.orElse(Double.NaN);
System.out.println(avg); // 5.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。