您好,我使用 pow 函數對矩陣中的輸入值進行賦值,其中行是列的冪。 我們應該通過獲取行號和列的冪來獲取字段的值,例如,如果我們位于第 3 行和第 2 列,我們應該得到值 9所以這是我的代碼,我不明白為什么會出現此錯誤: 錯誤 `public static void main(String args[]) { int n = (int)(Math.random()*100) % 10; System.out.println(n); if(n == 0 || n == 10){ System.out.println("The program needs a number between 1 and 10"); System.exit(0); } //int [] myArray = new int[n]; int [][] myMatrix = new int[n][n]; for (int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ int value = (int) Math.pow(i,j); myMatrix[i][j] = value; System.out.print(myMatrix[i][j] + "\t"); } System.out.println(); } }}
3 回答

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
在你們的幫助下我終于意識到我做錯了什么
for (int i=0; i<n; i++){
for(int j=0; j<n; j++){
int value = (int) Math.pow((i+1),(j+1));
System.out.print(value + "\t");
myMatrix[i][j] = value;
}
這是我得到的編輯
向大家致以最誠摯的問候

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
嘗試將 for 循環更改為:
for (int i=0; i<n; i++){
for(int j=0; j<n; j++){
數組中的默認索引從 0 而不是 1 開始,最后一個索引是 length-1。如果您正在訪問大小為 n 的數組,則其可能的索引為 - 0,1,2....n-1。如果您嘗試訪問總行數為 n 的數組/矩陣,則其最后一個索引為 n-1。您的循環讀取索引 n,因此會發生 indexoutofbound 錯誤。
添加回答
舉報
0/150
提交
取消