请问各位我的代码哪里出错了呢?

题目是7.19

附上代码

}图片说明

以行遍历分支为例:

 h=true;

应修改为:

{
    h = true;
    break;//跳出循环,否则以1 1 1 1 2为例,第二次进入循环后计算结果h就为false了!
}

其它分支依此修改。

好乱的,感觉,看都不想看图片说明,你用的啥方法,可以试试幻方

import java.util.Scanner;
public class Counting {

public static void main(String[] args) {
    // TODO Auto-generated method stub
  boolean h=false,l=false,z=false,f=false;//定义行 列 主对角线 副对角线的判断结果
  int row,column;//定义数组的大小
  int i,j;
  Scanner input = new Scanner(System.in);
  System.out.println("Input rows:");
  row = input.nextInt();
  System.out.println("Input columns:");
  column = input.nextInt();
  int[][] array = new int[row][column];//定义一个任意大小二维数组

  //输入一个数组
  for(i=0;i<array.length;i++){
      for(j=0;j<array[0].length;j++){
          array[i][j] = input.nextInt();
      }
  }

    //遍历行
  for(i=0;i<array.length;i++){
      for(j=0;j<array[0].length-3;j++){
         if(array[i][j]==array[i][j+1]&&
                 array[i][j]==array[i][j+2]&&
                 array[i][j]==array[i][j+3])
        h=true;
         else
             h=false;
      }
  }     
  //列遍历
  for(i=0;i<array.length-3;i++){
      for(j=0;j<array[0].length;j++){
        if(array[i][j]==array[i+1][j]&&
                array[i][j]==array[i+2][j]&&
                array[i][j]==array[i+3][j])
            l=true;
        else
            l=false;
      }
  }
  //主对角线遍历
 for(i=0;i<array.length-3;i++){
      for(j=0;j<array[0].length-3;j++){
         if(array[i][j]==array[i+1][j+1]&&array[i+2][j+2]==array[i+1][j+1]&&array[i+2][j+2]==array[i+3][j+3])
        z=true;
         else
             z=false;

      }
  }
 //副对角线
  for(i=0;i<array.length-3;i++){
      for(j=3;j<array[0].length;j++){
          if(array[i][j]==array[i+1][j-1]&&
                  array[i][j]==array[i+2][j-2]&&
                  array[i][j]==array[i+3][j-3])
        f=true;
          else
              f=false;

      }
  }

  if(h||l||z||f==true)
      System.out.println("is consecutive");
  else
      System.out.println("is not consecutive");


}

}

二位数学,array.length是多少