首页 > 解决方案 > java中的二维数组

问题描述

我想编写一个java程序来打印二维数组每一行的平均值,但它只适用于第一行。我不知道是什么问题。

这是代码:

    int [][] A = new int[r][c];

    for (int i=0;i<A.length;i++)
    {
        System.out.println("Enter the elements of the row number: "+(i+1));
        for (int j=0; j<A[i].length;j++)
            A[i][j]=kbd.nextInt();
    }

    int sum = 0, avg =0;
    for (int i=0; i<A.length;i++)
    {
        for (int j=0; j<A[i].length;j++) {
            sum += A[i][j];
            avg = sum/A[i].length;
        }
        
        System.out.println("The average of the row number: "+(i+1)+" is: "+avg);
    }

}

标签: javaloopsrownested-loops

解决方案


每次循环时都需要将 sum 重置为零。这可以通过在 for 循环内部而不是外部声明 sum 变量来解决。avg 和 sum 也应该是 double 而不是 int:

for (int i=0; i<A.length;i++)
{
    double sum = 0;
    double avg =0;
    for (int j=0; j<A[i].length;j++) {
        sum += A[i][j];
        avg = sum/A[i].length;
    }
    
    System.out.println("The average of the row number: "+(i+1)+" is: "+avg);
}

推荐阅读