题目是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是多少