2015-04-04 210 views
-1

我一直在試圖做一個簡單的Java程序,輸入和打印矩陣。它可以在一個矩陣中正常工作,但只要我放入兩個具有不同順序的矩陣,就會在方法print()中給出一個超出範圍的例外。輸入和打印矩陣

package matrices; 

import java.util.Scanner; 

public class Matrices_Op { 
static int i; 
static int j; 
static int[][] m_Matrice_Nos; 

private int p; 
private int q; 


public static void main(String args[]){ 

    System.out.print("Enter the first matrice now : \n \n"); 

    Matrices_Op m1=new Matrices_Op(); 
    m1.p=2; 
    m1.q=2; 
    m1.input(m1.p,m1.q); 


    System.out.print("Enter the second matrice now : \n \n"); 

    Matrices_Op m2=new Matrices_Op(); 
    m2.p=2; 
    m2.q=2; 
    m2.input(m2.p,m2.q); 


    m1.print(m1.p,m1.q); 
    m2.print(m2.p,m2.q); 

} 

public Matrices_Op(){ 

} 

public void matrices_SetOrder(int m_p, int m_q){ 

} 

public static void input(int p,int q){ 

    m_Matrice_Nos=new int[p][q]; 

    for(i=0;i<=p-1;i++){ 
     for(j=0;j<=q-1;j++){ 
      System.out.print("Enter the number now :\n"+"a"+(i+1)+""+(j+1)+"\n"); 
      Scanner in = new Scanner(System.in); 
      m_Matrice_Nos[i][j] = in.nextInt(); 
     } 
    } 
} 

public static void print(int p1, int q1){ 

    for(int ii=0;ii<=p1-1;ii++){ 
     for(int jj=0;jj<=q1-1;jj++){ 
      System.out.print(m_Matrice_Nos[ii][jj]+" "); 

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

} 

public void multiplication(){ 

} 

public void addition(){ 

} 

} 
+0

代碼因爲你的Matrices_Op.print()方法可能是有用的。 – sovemp 2015-04-04 02:29:12

+0

@sovemp你的意思是什麼? – 2015-04-04 02:33:43

+0

Doh沒關係。我的筆記本電腦屏幕不允許我看到滾動條,對不起。 – sovemp 2015-04-04 02:35:00

回答

0

我提高一點你的代碼,請記住,當你使用靜態就意味着它影響到每一個對象類,如果你有靜態屬性的所有對象共享相同的屬性

package tabla; 
import java.util.Scanner; 

public class Matrices_Op { 
    int[][] m_Matrice_Nos; 

    public Matrices_Op(int p,int q){ 
     m_Matrice_Nos=new int[p][q]; 
    } 
    public static void main(String args[]){ 

     System.out.print("Enter the first matrice now : \n \n"); 

     Matrices_Op m1=new Matrices_Op(2,2); 
     m1.input(); 


     System.out.print("Enter the second matrice now : \n \n"); 

     Matrices_Op m2=new Matrices_Op(2,2); 
     m2.input(); 


     m1.print(); 
     System.out.println(); 
     m2.print(); 

    } 
    public void input(){ 
     Scanner in = new Scanner(System.in); 
     for(int i=0;i<m_Matrice_Nos.length;i++){ 
      for(int j=0;j<m_Matrice_Nos[i].length;j++){ 
       System.out.print("Enter the number now :\n"+"a"+(i+1)+""+(j+1)+"\n"); 
       m_Matrice_Nos[i][j] = in.nextInt(); 
      } 
     } 
    } 

    public void print(){ 

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

    } 

    public void multiplication(){ 

    } 

    public void addition(){ 

    } 


}