2016-02-02 56 views
0

)我們被要求創建一個具有給定值的簡單直方圖,但是我的代碼似乎無法正常工作,我真的需要幫助。 編輯:此錯誤在即時運行它:使用數組創建具有給定值的直方圖有助於:(

(例外在線程 「主」 java.lang.ArrayIndexOutOfBoundsException:5` 在Exercise39_Histogram.main(Exercise39_Histogram.java:13) 過程完成)

代碼:

public class Exercise39_Histogram 
    { 
     public static void main(String args[]) 
     { 
      int el[]= new int[]{0, 1, 2, 3, 4, 5}; 
      int val[] = new int[]{10, 3, 6, 18, 11, 1}; 
      String ast[] = new String[5]; 
      ast[0] = "**********"; 
      ast[1] = "***"; 
      ast[2] = "******"; 
      ast[3] = "******************"; 
      ast[4] = "***********"; 
      ast[5] = "*"; 

      System.out.println("Elements\tValue\tHistogram"); 
      System.out.print(el[0]+"\t"+val[0]+"\t"+ast[0]); 
      System.out.print(el[1]+"\t"+val[1]+"\t"+ast[1]); 
      System.out.print(el[2]+"\t"+val[2]+"\t"+ast[2]); 
      System.out.print(el[3]+"\t"+val[3]+"\t"+ast[3]); 
      System.out.print(el[4]+"\t"+val[4]+"\t"+ast[4]); 
      System.out.print(el[5]+"\t"+val[5]+"\t"+ast[5]); 

      } 
    } 
+0

我不知道Java的,但你的'ast'陣列似乎是一個元素太小;應該是'String ast [] = new String [6];' – yolenoyer

回答

3

當你創建數組您設置它的大小爲5,

String ast[] = new String[5]; 

但是當你用

ast[5] = "*"; 

你想保存數據女巫後者指數6,因爲數組索引你應該改變你的數組的大小爲6.

爲了得到正確的顯示,你可能會想要使用:

System.out.println 

顯示所有直方圖,否則它們將全部顯示在同一行。

0

此錯誤顯示出來時,即時通訊運行它:(例外在線程 「主」 java.lang.ArrayIndexOutOfBoundsException:5在Exercise39_Histogram.main(Exercise39_Histogram.java:13)過程完成)

您得到這個異常,因爲ast [5]不存在。

記住數組的索引從0開始,而不是1

通過執行 String ast[] = new String[5];

所以,要創建大小5的陣列,這意味着你只爲5空間元件

ast[0] 
ast[1] 
ast[2] 
ast[3] 
ast[4] 

您的代碼ast[5] = "*";線13正試圖訪問不存在的第6個元素,因此給你ArrayIndexOutOfBounsException


至於你打印出來,你可能需要使用一個循環:

System.out.println("Elements\tValue\tHistogram"); 
for(int x=0; x<6; x++) 
    System.out.println(el[x]+"\t"+val[x]+"\t"+ast[x]); 
相關問題