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条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!