2017-03-22 1 views
0

J'ai lutté avec l'entrée manuelle de 2d Arrays en Java.Saisie et sauvegarde de tableaux 2d en Java?

  • Tout d'abord, comme je suis en train de créer un programme en question avec des matrices, est-il un moyen de manipuler des lignes et des colonnes pour rendre les matrices aspect plus « naturel », alias ressembler à un carré, plutôt que d'être placé verticalement dans le programme * (fournira des captures d'écran, sous peu).
  • Deuxièmement, comment est-ce que je stocke manuellement un tableau 2D qui est entré manuellement à une matrice dans la méthode principale, qui serait plus tard utilisée pour effectuer des opérations avec des matrices plus tard dans le programme? Par exemple, si un utilisateur a entré une matrice et veut trouver son inverse, comment puis-je stocker son entrée à partir du clavier à utiliser pour trouver le déterminant (qui a une méthode distincte traitant de la matrice stockée). Je continue à recevoir des zéros!

Voici le code et les instantanés: Horrid looking matrices

méthode principale demande pour les dimensions et fournit des trucs System.out.println.

static void Manual(dimension){ 
    int n=dimension; 
    int mat[][]=new int [n][n]; 
    Scanner scan= new Scanner(System.in); 
    for(int row=0; row<n;row++) 
    {for(int col=0; col<n;col++) 
     {  
      mat[row][col]=scan.nextInt(); 

     } 
     System.out.print("\n"); 
    } 
+0

Je ne vois pas de matrice regardant horrible dans votre capture d'écran ..., voulez-vous dire que «1 2 3 4» sur des lignes séparées qui semblent être une entrée manuelle plutôt que la visualisation de votre matrice? Vous attendez-vous à une grille de 4 champs de saisie que l'utilisateur peut parcourir? – Thomas

+0

"Je continue à recevoir des zéros!" - vous devriez probablement nous montrer comment vous essayez d'utiliser la matrice entrée. De cette méthode (btw, le nom doit être minuscule pour éviter la confusion et le type de paramètre est manquant) est semble que vous créez le tableau 2D localement et ne le renvoyez pas. Essayez de renvoyer le tableau et de stocker la référence à ce tableau, le cas échéant, afin que les autres méthodes y aient accès. – Thomas

+0

Salut Thomas, à propos de ton premier commentaire: oui, je pensais que ça pouvait être plus joli visuellement, et la réponse de Yash Soni m'a aidé avec ça! Aussi, j'ai changé le type de retour à int [] [] et ça marche très bien! Merci pour votre temps:) – Dunja

Répondre

0

Pour imprimer la matrice, faites une méthode d'aide

public void printMatrix(int[][] matrix){ 
    int rows = matrix.length; 
    int cols = matrix.length; 
    for(int i=0; i<rows; i++){ 
     for(int j=0; j<cols; j++) 
      System.out.print(matrix[i][j]+" "); 
     System.out.println(); 
    } 
} 

Pour répondre sur la façon d'effectuer des opérations, basculez cas:

switch(inputChar){ 
    case 'a': computeDeterminant(); break; 
    case 'b': computeInverse(); break; 
    case 'c': .... ; break; 
    default : .... ; 
} 

Et assurez-vous de faire votre matrice un objet statique. Cela vous aidera à manipuler un seul objet. Et, vous pouvez utiliser la matrice temporaire pour refléter les modifications apportées à l'objet principal.

J'espère que cela aide, dites-moi si j'ai raté quelque chose.