qq_34649860 2016-09-04 09:16 采纳率: 50%
浏览 1407

java.lang.ArrayIndexOutOfBounds

CCF的俄罗斯方块问题:
import java.util.Scanner;

public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int[][] x=new int[15][10];
for(int i=0;i<15;i++)
for(int j=0;j<10;j++)
x[i][j]=sc.nextInt();
int[][] y=new int[4][4];
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
y[i][j]=sc.nextInt();

    int z=sc.nextInt();
    int m=0;
    int[] xx=new int[4];
    int[] yy=new int[4];
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
            if(y[i][j]==1){
                xx[m]=i;
                yy[m]=j+z;
                m++;
            }
    int aa=0;
    boolean f=true;

while(f){
    for(int i=0;i<4;i++)
     if(x[xx[i]+1][yy[i]-1]!=1)  //提示我在这一行越界
        {aa++;}
     else{for(int j=0;j<4;j++)              
            x[xx[j]][yy[j]-1]=1;
     f=false;
     break;

     }

    if(aa==4){
        aa=0;
        for(int j=0;j<4;j++)
            xx[j]++;}
    }

    for(int i=0;i<15;i++)
    {   for(int j=0;j<10;j++)
        System.out.print(x[i][j]+" ");

            System.out.println();
    }

}

}
我输入的数据:
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 1 1 0 0
0 0 1 0 1 1 1 0 1 0
0 0 0 0 1 1 0 0 1 0
0 0 0 0
1 1 0 0
1 1 0 0
0 0 0 0
1 //把它改成不是1的数就正常,不明白

  • 写回答

1条回答 默认 最新

  • yuyubingMan 2016-09-04 12:40
    关注

    亲爱的,数组角标越界了,数组角标是从0开始的哦

    评论

报告相同问题?

悬赏问题

  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件