antiitna 2015-07-13 09:17 采纳率: 100%
浏览 1594
已采纳

求大整数和时,为啥会报数组越界异常?

package com.seqlist;

public class SeqList {

/**
 * @java.lang.ArrayIndexOutOfBoundsException
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
        int [] Adata={3,2,5,1,2,3,4,3};
        int [] Bdata={6,4,3,2,4,5,6};
        int flag=0;
        int n=Adata.length;
        int m=Bdata.length;
        int [] Cdata={};
        int i=0;
        int x=Cdata.length;
        while(i<n&&i<m){
            //数组越界,为什么为什么为什么????
            Cdata[i]=(Adata[i]+Bdata[i]+flag)%10;
            flag=(Adata[i]+Bdata[i]+flag)/10;
            i++;
        }
        for(;i<n;i++){
            Cdata[i]=(Adata[i]+flag)%10;
            flag=(Adata[i]+flag)/10;
        }
        for(;i<m;i++){
            Cdata[i]=(Bdata[i]+flag)%10;
            flag=(Bdata[i]+flag)/10;
        }
      x =Math.max(m,n)+flag;
      if(flag==1)Cdata[x-1]=1;

      for(int j=0;j<Cdata.length-1;j++) {
          System.out.print(Cdata[j]);
      } 
}   

}


  • 写回答

5条回答 默认 最新

  • Evankaka 博客专家认证 2015-07-13 09:35
    关注
      int [] Cdata={};
        int i=0;
        int x=Cdata.length;
        System.out.println(x);
                输入结果为0,
                说明数组Cdata长度为0啊
                改成 int [] Cdata=new int[10];就可以了
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况