程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> arraylist-求大整數和時,為啥會報數組越界異常?

arraylist-求大整數和時,為啥會報數組越界異常?

編輯:編程綜合問答
求大整數和時,為啥會報數組越界異常?

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]);
      } 
}   

}


最佳回答:


  int [] Cdata={};
    int i=0;
    int x=Cdata.length;
    System.out.println(x);
            輸入結果為0,
            說明數組Cdata長度為0啊
            改成 int [] Cdata=new int[10];就可以了
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved