java - 计算二维数组中每一列的平均值的函数。线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:3
问题描述
我有一个计算每列平均值的函数,但是当我运行它时,它给了我:线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 3
// function to calculate the average value of columns of the given matrix
static void povprecje_stolpci(double matrix[][]) {
int i, j;
double zbir = 0, prosek = 0; // prosek - variable for average
for (i = 0; i < matrix.length; i++) {
for (j = 0; j < matrix[i].length; j++) {
zbir = (int) (zbir + matrix[j][i]); // zbir variable to calculate the sum of the elements in each columns
}
prosek = (int) (zbir / matrix[i].length); // average of the columns
System.out.print(prosek); // printing the average
zbir = 0; // setting the sum to 0 for the next element
System.out.print(" ");
}
}
解决方案
问题在于zbir = (int) (zbir + matrix[j][i]);
您需要更改的代码部分:
因为在第一个循环中,您遍历数组的行,而在内部循环中遍历列
zbir = (int) (zbir + matrix[i][j]);
完整代码:
static void povprecje_stolpci(double matrix[][]) {
int i, j;
double zbir = 0, prosek = 0; // prosek - variable for average
for (i = 0; i < matrix.length; i++) {
for (j = 0; j < matrix[i].length; j++) {
zbir = (int) (zbir + matrix[i][j]); // zbir variable to calculate the sum of the elements in each
// columns
}
prosek = (int) (zbir / matrix[i].length); // average of the columns
System.out.print(prosek); // printing the average
zbir = 0; // setting the sum to 0 for the next element
System.out.print(" ");
}
}
推荐阅读
- reactjs - React 父布局取决于子级(必须重新渲染)
- mysql - 使用 Web 服务和 myPHPAdmin 将迁移的 .net 站点连接到 Synology NAS 上的 MySQL 数据库的问题
- c++ - 未定义的符号 str::string 和字符串文字
- javascript - GEOJSON 为什么给出 3 个坐标系,谁能更简单地解释一下它的属性
- python - 导入 keras 和 tensorflow 时出错
- python - PyQT5 QSound 声音之间的延迟
- r - 加入列表列表中的数据
- xamarin - 在 C# 而不是 XAML 中创建框架时,如何在构造函数中分配动态资源?
- python - 将预训练模型更改为在 TensorFlow 中首先期望通道
- next.js - 我可以在 AWS lambda edge 上托管我的 next.js 并拥有单独的 API 服务器吗?