北工大咸鱼 2022-04-18 23:22 采纳率: 100%
浏览 20
已结题

岛屿周长为什么最后运行结果的周长一直不对。

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

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);
    }

}

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-04-18 23:29
    关注

    题目是什么?发一下题目要求。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月26日
  • 已采纳回答 4月18日
  • 创建了问题 4月18日

悬赏问题

  • ¥15 怎么改成输入一个要删除的数后现实剩余的数再输入一个删除的数再现实剩余的数用yes表示继续no结束程序
  • ¥15 在启动roslaunch时出现如下问题
  • ¥15 汇编语言实现加减法计算器的功能
  • ¥20 关于多单片机模块化的一些问题
  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃
  • ¥15 像这种代码要怎么跑起来?