0
votes

Comment puis-je copier un tableau 2D et ajouter une nouvelle ligne pour stocker la somme des colonnes de Java?

Fondamentalement, j'ai une fonction qui reçoit une matrice bidimensionnelle, ajoute une ligne supplémentaire, puis calcule la somme des colonnes et stocke les résultats pour chaque colonne individuelle de la ligne supplémentaire créée précédemment. Voici mon code:

public static int[][] sum(int[][] array) {
    int tempArray[][] = new int[array.length + 1][array[0].length];

    for (int column = 0; column < tempArray[0].length; column++) {
        int total = 0;
        for (int row = 0; row < tempArray.length; row++) {
            total += tempArray[row][column];
        }

        tempArray[tempArray.length][column] = total;

    }

    return tempArray;
}


0 commentaires

3 Réponses :


2
votes

Vous obtenez ArrayIndExOUPOfbounds parce que vous accédez à l'index plus que la limité du tableau dans la ligne ci-dessous: xxx

Remplacez-le en suivant que la ligne résoudrait votre problème: XXX

Cependant, votre code ne fonctionnera toujours pas car votre logique de sommation a un bogue. Vous calculez le total par la ligne suivante. xxx

mais votre temparray n'a aucune valeur mais zéros. Pour résoudre ce problème, assurez-vous d'initier le temparray par les valeurs de tableau comme suit: xxx

espérons que cela résoudra votre problème. Codage heureux!


0 commentaires

0
votes

Vous n'avez pas initialisé le temparraray [] [] [] .

temparraray [temparray.length] [colonne] = TOTAL il à

temparraray [temparray.length-1] [colonne] = TOTAL

Ceci résoudra l'index hors problème lié. xxx


0 commentaires

0
votes

Les solutions mentionnées ne fonctionneront pas au cas où les lignes ont une longueur différente. Par exemple, si la matrice d'entrée est xxx

cette solution élimine un tel problème xxx

et le test xxx < / pré>


3 commentaires

Je suis curieux. Dans quelles circonstances nécessiteraient-elles un tableau avec des rangées de longueur variable?


Eh bien, l'auteur tente peut-être de lancer ce programme sur Tetris et il est très limité en mémoire, voici aucun zéros de fin :) Sérieusement, l'auteur ne décrit pas le sujet, la solution la plus générale doit donc être implicite.


@ABRA Je dois faire un programme qui calcule les dépenses par catégorie d'une famille et renvoie les résultats dans le tableau d'origine. Les valeurs ont été entrées à l'origine dans un tableau par l'utilisateur. C'est ce que l'enseignant voulait. Croyez-moi que ce n'est pas mon choix. MDR