2017-10-01 4 views
0

Le programme que j'ai écrit multiplie une matrice 3 par 3. Il demande à l'utilisateur d'entrer la matrice a et la matrice b puis il affiche son produit. J'ai fait ceci cependant mon seul problème est que la sortie imprime seulement le produit que je voudrais pour qu'il imprime matrix a * matrix b = product(a,b). J'ai essayé de mettre System.out.println(a[i][j]+ " "); au-dessus du System.out.print(mul[i][j]+""); mais cela salit toute la sortie et la multiplication.Impression de matrices a et b

//this is my code: 
import java.util.Scanner; 

public class Matrices 

{ 

public static double[][] multiplyMatrix(double[][] a,double[][] b) 

{ 

     double c[][]=new double[3][3]; 

     for(int i=0;i<3;i++) 

      for(int j=0;j<3;j++) 

       for(int k=0;k<3;k++) 

        c[i][j]=c[i][j]+a[i][k]*b[k][j]; 

     return c; 

    } 


    public static void main(String args[]) 

{ 

     //Create Scanner object to read input from user 

     Scanner sc=new Scanner(System.in); 

     double a[][]=new double[3][3]; 

     double b[][]=new double[3][3]; 

     double sum[][]=new double[3][3]; 

     double mul[][]=new double[3][3]; 



     //Read the elements of matrix b 

     System.out.println("Enter the elements of matrix a:"); 

     for(int i=0;i<3;i++) 

      for(int j=0;j<3;j++) 

       a[i][j]=sc.nextInt(); 


    System.out.print(a[i][j]+"") 
     //Read the elements of Matrix b 

     System.out.println("Enter the elements of matrix b:"); 

     for(int i=0;i<3;i++) 

      for(int j=0;j<3;j++) 

       b[i][j]=sc.nextInt(); 


     //Call the method multiplyMatrix to multiply a and b 

     mul=multiplyMatrix(a,b); 


     System.out.println("Multiplication of two matrices:"); 




     for(int i=0;i<3;i++) 

     { 

      for(int j=0;j<3;j++) 


      { 

      System.out.print(mul[i][j]+"");     

      } 

      System.out.println(); 

      } 

     } 

    } 

Répondre

0

Colonne sortie sage: Vous devez utiliser trois boucles différentes pour sortie trois matrices: Matrix * matrice b = produit (a, b)

for(int i=0;i<3;i++){ 
    for(int j=0;j<3;j++) 
    { 
     System.out.print(a[i][j]+" ");     
    } 
    System.out.println(); 
} 

for(int i=0;i<3;i++){ 
    for(int j=0;j<3;j++) 
    { 
     System.out.print(b[i][j]+" ");     
    } 
    System.out.println(); 
} 

for(int i=0;i<3;i++){ 
    for(int j=0;j<3;j++) 
    { 
     System.out.print(mul[i][j]+" ");     
    } 
    System.out.println(); 
} 

sortie sage ligne: Créez StringBuffer pour chaque ligne. Ajoutez la 1ère rangée de matrices a, b et mul à StringBuffer1 et imprimez-la. De même pour les deux autres rangées. Voici un lien pour la syntaxe de StringBuffer. http://www.java-examples.com/java-stringbuffer-examples

+0

qu'il imprime dans une colonne comment puis-je obtenir à imprimer dans une rangée – Andrey

+0

S'il vous plaît être plus précis lorsque vous postez la question. – Vidhi

0

Vous pouvez essayer d'utiliser ceci:

System.out.println("Multiplication of two matrices:" + "\n"); 

System.out.println("Matriz A"); 

System.out.println(Arrays.deepToString(a) + "\n"); 

System.out.println("Matriz B"); 

System.out.println(Arrays.deepToString(b)+ "\n"); 

System.out.println("A x B"); 

System.out.println(Arrays.deepToString(mul)+ "\n"); 

Résultat:

Multiplication of two matrices: 

Matriz A 
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]] 

Matriz B 
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]] 

A x B 
[[30.0, 36.0, 42.0], [66.0, 81.0, 96.0], [102.0, 126.0, 150.0]]