-1
두 개의 행렬을 곱하는 java 프로그램이 있습니다. 전역 오류 선언에서 오류가 발견되었습니다. 다음은 내 코드Java에서 배열을 전역 적으로 선언하는 방법은 무엇입니까?
import java.util.Scanner;
/**WAP in Java for multiplication of two (m*n) matrices. */
public class PracProg_7{
static int m,n,p;
static int a[][];
static int b[][];
static int c[][];
public static void main(String[] args){
getMatrix();
solveMatrix();
display();
}
static void getMatrix(){
int i,j;
System.out.println("Enter size of matrix || Enter m,n,p");
Scanner sc = new Scanner(System.in);
m = sc.nextInt();
n = sc.nextInt();
p = sc.nextInt();
int a[][] = new int [m][n];
int b[][] = new int [n][p];
System.out.println("Enter matrix A");
for(i=0;i<m;i++){
for(j=0;j<n;j++){
a[i][j] = sc.nextInt();
}
}
System.out.println("Enter matrix B");
for(i=0;i<n;i++){
for(j=0;j<p;j++){
b[i][j] = sc.nextInt();
}
}
}
static void solveMatrix(){
int i,j,k;
int c[][] = new int [m][p];
for(i=0;i<m;i++) {
for (j = 0; j < p; j++) {
c[i][j] = 0;
for (k = 0; k < n; k++) {
try{
c[i][j] += a[i][k] * b[k][j];
}
catch (ArrayIndexOutOfBoundsException e){System.out.println("Error" + e);}
}
}
}
}
static void display(){
int i,j;
for(i=0;i<m;i++){
for(j=0;j<p;j++){
System.out.print(c[i][j] + "\t");
}
System.out.println();
}
}
}
내가하는 배열 a와 b 선언 된 전역 배열에 액세스하려고 할 때 내가 정적 무효 solveMatrix()에서 오류가 발생하고있다.
내 오류는 getMatrix() 메소드, 배열이 & b는 오히려 당신이 & B 배열의 새 로컬 사본을 작성, 사용하지 않는 인스턴스 변수 객체 때문이다
Exception in thread "main" java.lang.NullPointerException
at PracProg_7.solveMatrix(PracProg_7.java:46)
at PracProg_7.main(PracProg_7.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
에 오류 메시지를 추가를하여 문제. – talex
/b/c 배열을 함수의 내부에 정적 배열로 그림자를 넣고 함수 내부의 선언에서 int [] []를 제거하십시오. –
[java array nullpointer] (http://stackoverflow.com/questions/8007655/) 가능한 중복 java-array-nullpointer) – talex