2011-05-25 3 views
0

Les gars, je me bats difficilement pour l'examen avec le tableau 2d de papier d'examen passé. J'écrire une méthodejava 2d arithmétique de tableau

sumr static (int[][] v) 

qui renvoie un tableau 2D composée de 2 rangées et les entrées des premières sommes de rangées de v et de la deuxième rangée est la même de la première ligne de v Ex.:

a = {{2,3,3}, {1,3}, {1,2}} 

la méthode retourne un tableau 2d

b = {{8,4,3},{2,3,3}} 

J'essaie d'abord de faire ma méthode retourne un tableau 2D, mais je faisais l'erreur de commencer illégale d'expression, maintenant je le code suivant, mais le dernier élément biche s ne s'imprime pas et les éléments sont imprimés en ligne, pas de façon matricielle ... S'il vous plait, les gars m'aident, mon examen est demain.

public class Sum 
{ 

    // int[][] a = {{2, 3, 3}, {1, 3}, {1, 2}}; 


    public void sumr(int[][] v) 
    { 
     for(int rows = 0; rows < v.length; rows++){ 
      for(int columns = 0; columns < v.length; columns++){ 
       int result = v[rows][columns]; 
       System.out.print(result + " "); 
       //return [][] result; 
      } 
     } 
    } 

    public int getCount(int[][] Array) 
    { 
     int result = 0; //temp location to store current count 
     for (int i = 0;i <= Array.length -1;i++){//loop around first array 
      //get the length of all the arrays in the first array 
      //and add them onto the temp variable 
      result += Array[i].length; 
     } 
     return result; 
    } 

} 
+1

quelle était la syntaxe que vous avez utilisé lorsque vous avez essayé de retourner un tableau « 2d » de cette méthode? – asgs

+1

J'ai ajouté tag de devoirs (c'est une chose d'étude ...) – helios

+0

J'ai utilisé ceci: public int [] [] sumr (int [] [] v) – learnerNo1

Répondre

4

Dans la boucle externe (après la boucle interne) comprennent:

System.out.println(); // go to next line! 

et vérifier la longueur contre-matrice interne !!

int[] innerArray = v[rows]; 
for(int columns = 0; columns < innerArray.length; columns++){ 

Il est:

public void sumr(int[][] v) 
{ 
    for(int rows = 0; rows < v.length; rows++){ 
     int[] innerArray = v[rows]; 
     for(int columns = 0; columns < innerArray.length; columns++){ 
      int result = v[rows][columns]; 
      System.out.print(result + " "); 
      //return [][] result; 
     } 
     System.out.println(); // go to next line! 
    } 
} 

Une fois que vous pouvez itérer:

Vous devez construire un tableau à deux éléments:

1er élément: "tableau résumé" 2 item: le même que v [0]

Vous devez créer ce résultat.

Vous devez construire le 1er item en répétant v. Comme vous essayez de le faire. Pour chaque rangée (boucle externe), vous allez parcourir la rangée et additionner ses valeurs. Donc, après avoir traité chaque ligne (après la boucle interne), vous aurez la valeur additionnée. Cette valeur doit être placée dans le "tableau sommé".

Ensuite, vous pouvez construire directement le tableau des résultats, en affectant la somme construite à sa première place et v [0] à la deuxième place.

Mais je ne suis pas encore à écrire du code pour vous permettre de le faire ;-)

+0

Hélios, Le compilateur ne me permet pas d'avoir la 3ème boucle: "la colonne est déjà définie dans sumr (int [] []), ça va quand même être correct, si je change juste pour un autre nom? Merci beaucoup pour votre aide – learnerNo1

+0

Arrrg !!! Mon erreur, j'ai répété la ligne au lieu de le remplacer! :) Je vais le réparer dès maintenant ... – helios

+0

En fait, ce que j'essaie de faire est d'itérer sur le 2d tableau, il est, je dois avoir deux fors, pas trois, il lui, dans ces cas, ne pas avoir peur de demander "à quoi sert la troisième boucle?"ou" pourquoi déclarez-vous la variable deux fois? "L'important est que vous compreniez ce que chaque chose fait. – helios