查找3D数组中每组行的最大行数

时间:2017-10-21 12:28:44

标签: java arrays multidimensional-array sum max

这是我第一次在这里提问,

您好我是Java的新手,我遇到了一些麻烦,我想知道如何将我从代码中获取的信息存储在3D数组中,这样我就能找到一组整数中的最大整数(我有一个3D数组,我存储了这个:

**我希望我拥有的每一行的总和,我想要每个总和中最大的数字 谢谢你提前

Gr1

  • 8 5 9 8 7
    5 6 8 7 6
    7 8 4 5 6
    9 5 4 6 8
    4 7 5 3 6

GR2

  • 5 7 4 9 3
    8 6 3 7 5
    5 2 7 3 4

GR3

  • 6 4 3 7 6
    8 7 9 6 9
    7 5 6 4 8
    5 9 7 6 7

GR4

  • 3 5 6 4 7
    8 8 7 8 9
    4 6 8 6 6

这是我的代码:

src

2 个答案:

答案 0 :(得分:0)

正如@JB Nizet所说,你应该重新考虑你的变量命名,坚持conventions

您的代码似乎很大程度上是不完整的,并且误解了您显然想要做的事情,从您发表评论,您说

  

我的意思是找到具有最大整数

的行

,所以这里有一个替代代码:

public static void main(String[] args) {
    int[][][] votes = new int[1][2][7];
    votes[0][0][0] = 1;
    votes[0][0][1] = 5;
    votes[0][0][2] = 1;
    votes[0][0][3] = 6;
    votes[0][0][4] = 9;
    votes[0][0][5] = 3;
    votes[0][0][6] = 1;
    votes[0][1][0] = 1;
    votes[0][1][1] = 5;
    votes[0][1][2] = 1;
    votes[0][1][3] = 10;
    votes[0][1][4] = 9;
    votes[0][1][5] = 3;
    votes[0][1][6] = 1;
    getMaxVotes(votes);
}

public static void getMaxVotes(int[][][] votes) {
    int largestInt = -1;
    String largestRowIndex = "";

    for (int i = 0; i < votes.length; i++) {
        for (int j = 0; j < votes[i].length; j++) {
            for (int k = 0; k < votes[i][j].length; k++) {
                if (largestInt <= votes[i][j][k]) {
                    largestInt = votes[i][j][k];
                    largestRowIndex = "votes[" + i + "][" + j + "][" + k + "]";
                }
            }
        }
    }

    System.out.println(largestInt);
    System.out.println(largestRowIndex);
    return;
}

此代码打印:

10
votes[0][1][3]

答案 1 :(得分:0)

感谢所有帮助过的人,我终于解决了这个问题,

    public static void getMaxVotes(int[][][] votes, String[][] uniStud, int size, int size1, PrintWriter uniWrite) {

    int maxRow = 0;
    int indexOfMaxRow = 0;


    // Get sum of the first row in maxRow
    for (int column = 0; column < votes[size].length; column++) {
        maxRow += votes[size][0][column];
    }
    for (int row = 0; row < votes[size].length; row++) {
        int totalOfThisRow = 0;
        for (int column = 0; column < votes[size][row].length; column++) {
            totalOfThisRow += votes[size][row][column];
        }
        if (totalOfThisRow > maxRow) {
            maxRow = totalOfThisRow;
            indexOfMaxRow = row;
        }
    }
    System.out.println(" has the maximum sum of " + maxRow);
    System.out.println();
}

}