问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class onltt {
public static void method(int[][] A) throws IOException
{
int count=0;
int M;
int N;
int i,j;
int min=0;
int t=0;
String strM;
String strN;
String tempstr;
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入矩阵A的维数(M,N):");
System.out.println("请输入矩阵A的M值");
strM=keyin.readLine();
M=Integer.parseInt(strM);
System.out.println("请输入矩阵A的N值");
strN=keyin.readLine();
N=Integer.parseInt(strN);
A=new int[M][N];
System.out.println("请输入矩阵A的各个元素");
System.out.println("请输入值后按enter确认");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
System.out.println("a"+i+j+"=");
tempstr=keyin.readLine();
A[i][j]=Integer.parseInt(tempstr);
}
}
System.out.print("grid=");
for(int q=0;q<M;q++) {
String a= Arrays.toString(A[q]);
System.out.print(a);
}
System.out.println();
System.out.println("整理后的二维数组为");//打印数组A
for(int v=0;v<M;v++)
{
for(int p=0;p<N;p++)
System.out.print(A[v][p]+" ");
System.out.println();
}
int[][] direction = { { 0, -1 }, { 0, 1 }, { -1, 0 }, { 1, 0 } };// 上下左右
for ( i = 0; i < M; i++) {
for ( j = 0; j < N; j++) {
if (A[i][j] == 1) {
for (int k = 0; k < 4; k++) {
// 四个方向:上下左右
// 遍历四个方向,查看情况
int x = i + direction[k][0];
int y = j + direction[k][1];
if (x < 0 || x >= M|| y < 0 || y >= N) {
count++;
}
}
}
}
}
System.out.print(count);
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/649163592056169.png "#left")
int [][]A = null;
onltt.method(A);
}
}