Java 在二维数组中查找列的平均值并将结果放入另一个矩阵中
我试图创建一个方法,计算出列的平均值,然后将答案放入另一个数组中。所以我通过了2个数组,什么也不发送。我的问题是,我得到的数字太离谱了。我知道这是个小东西,我看过头了,但请看一下:Java 在二维数组中查找列的平均值并将结果放入另一个矩阵中,java,arrays,loops,Java,Arrays,Loops,我试图创建一个方法,计算出列的平均值,然后将答案放入另一个数组中。所以我通过了2个数组,什么也不发送。我的问题是,我得到的数字太离谱了。我知道这是个小东西,我看过头了,但请看一下: public static void columnAverages(double [][] matrix1, double [][] matrix2) { double sum; for (int c = 1; c < matrix1[0].length; c++){ sum
public static void columnAverages(double [][] matrix1, double [][] matrix2)
{
double sum;
for (int c = 1; c < matrix1[0].length; c++){
sum = 0;
for (int r = 0; r < matrix1.length; r++){
sum = sum + matrix1[r][c];
matrix2[2][r]=sum/matrix1[0].length;
}
}
}
我正在从main调用此方法:
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
System.out.println("How many students are there?");
int students=kb.nextInt();
double [][] grades= new double [students][5];
double [][] averages= new double [3][5];
getScores(grades);
rowAverage(grades);
System.out.printf("%10s","Student");
printArray(grades);
columnAverages(grades, averages);
System.out.println(); printArray(averages);
kb.close();
}
任何帮助都将不胜感激。我已经在这上面呆了很长时间。你的问题就在这里:
matrix2[2][r] = sum / matrix1[0].length;
应该是:
matrix2[2][c] = sum / matrix1.length;
更新:
别忘了把线放在环路外 你能告诉我你是怎么打电话的吗?我只想看看数组里有什么。matrix1/matrix2对我没有意义!这是我的主要方法我试着把它放在代码中抱歉如果它混淆了
publicstaticvoidmain(String[]args){Scanner kb=newscanner(System.in);System.out.println(“有多少学生?”);int students=kb.nextInt();double[]grades=new double[student][5];double[]averages=new double[3][5];getScores;rowAverage(成绩);System.out.printf(“%10s”,“Student”);printary(成绩);columnAverages(成绩,平均值);System.out.println();printary(平均值);kb.close()
将除法放入外部循环首先,学生编号不应该在数组中。没有必要。其次,为什么matrix2
列相对于matrix1
移动?最后,为什么在matrix2
表中有任何数据?
matrix2[2][c] = sum / matrix1.length;