我无法使用 JAVA 中的 pow 函数将值插入矩阵字段



你好,我有一个在带有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();
}

}
}
int [][] myMatrix = new int[n+1][n+1]; 

因为你的循环在 <=n 结束

尝试将 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,因此会发生索引出界错误。

谢谢大家的帮助,我终于意识到在你的帮助下我做错了什么

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

这是我得到的编辑

向所有人致以最诚挚的问候

最新更新