我应该写一个Java程序,包含给一个矩阵赋值,并递归打印一个矩阵的值。我试过这段代码,但每次输入时,只需少输入一次,然后给出索引出边框异常:
import java.util.Scanner;
public class DSPro {
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
static double matrix1[][];
static double matrix2[][];
static double result[][];
System.out.println("What would be the number of n?");
int number = Integer.parseInt(scan.nextLine());
matrix1 = new double [number][number];
matrix2 = new double [number][number];
result = new double [number][number];
initialize(matrix1, number, number);
}
public static void initialize(double [][] matrix,int i,int j)
{
if(i == 0&&j==0)
return ;
matrix[i][j] = Double.parseDouble(scan.nextLine());
if(j == 0)
initialize(matrix,i-1,matrix[0].length);
else
initialize(matrix, i, j-1);
}
}
我还尝试将1加到number中,并传递函数number-1而不是n,然后异常变为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at data_structure.DSPro.initialize(DSPro.java:168)
at data_structure.DSPro.initialize(DSPro.java:171)
at data_structure.DSPro.initialize(DSPro.java:174)
at data_structure.DSPro.initialize(DSPro.java:174)
at data_structure.DSPro.main(DSPro.java:53)
您认为我的递归代码是问题所在还是我将它传递给方法的方式?
由于以下原因,它需要少一个输入:
if(i == 0 && j==0)
return;
还应设置元素[0,0]。尝试将条件更改为:
if (i == -1 || j == -1)
return;
索引超出界限,因为您应该以[length-1]索引开头:
initialize(matrix, number - 1, number - 1);
您还可以在输入每个元素之前添加消息,以便用户知道他输入的是哪个元素。最后还要打印矩阵以确保它是正确的。
最终代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class DSPro {
static Scanner scan = new Scanner(System.in);
static double[][] matrix;
public static void main(String[] args) {
System.out.println("What would be the number of n?");
int number = Integer.parseInt(scan.nextLine());
matrix = new double[number][number];
initialize(matrix, number - 1, number - 1);
for (double[] row : matrix) {
System.out.println(Arrays.toString(row));
}
}
public static void initialize(double[][] matrix, int i, int j) {
if (i == -1 || j == -1) return;
System.out.println("Enter element [" + i + ", " + j + "]");
matrix[i][j] = Double.parseDouble(scan.nextLine());
if (j == 0) initialize(matrix, i - 1, matrix.length - 1);
else initialize(matrix, i, j - 1);
}
}
在Java中构建汇编程序:我试图将用户的输入读入名为的。如果用户输入的指令与-array中的一个匹配,那么相应的操作码将被计算出来并输出到一个文本文件中。 但是,在输入指令并尝试添加另一条指令后,我得到了一个索引越界异常。 如果你们能帮忙,我会很感激的。
这是我的代码: 该程序的目的是要求用户输入一个字符串,然后统计字符串中每个字符的使用次数。 当我去编译程序时,它工作正常。当我运行程序时,我可以在弹出框中输入字符串,但是在我提交字符串并按确定后,我得到一个错误,说 我不完全确定问题是什么或如何解决。
我一直在四处寻找是否有任何东西可以帮助我,但我不太了解人们的回答,任何我所了解的似乎都不能解决问题!所以基本上正如标题所说,我得到了一个数组索引越界异常,但我不知道为什么。非常感谢任何帮助。 代码:
这段代码是关于一个水罐车游荡在一个环境中寻找有任务的水站。 试图通过访问点的数组列表进行递增,但每次运行代码时,我都得到一个“indexoutofboundsexception”,但其索引不同,而且大小总是与索引相同,所以我非常困惑。中断程序的索引/大小看起来是随机变化的。 示例错误:线程“main”java.lang.IndexOutOfBoundsException:Index:5,SIZE:
从学习利用MATLAB处理矩阵来入手,是入门MATLAB的最好方法!下面就让我们来看看下面这些例子。 输入矩阵有以下几种不同方法: 直接输入组成矩阵的元素。 从外部文件引入矩阵。 利用自带的函数构成矩阵。 利用在*.M文件内自定义的函数来构成矩阵。 下面让我们来输入杜勒的魔方的一组元素,只要遵循下列几个基本步骤就可以了: 用空格或者逗号来区分一行里不同的元素。 用分号';'来区分不同的行。 用方括
问题内容: 在我的游戏代码中,我尝试添加一张手牌。一旦我做完了,我的数组就超出了范围。一切看起来都不错,但也许我缺少了一些东西。 仅供参考,一个和两个是Player实例。来自Main类的相关代码(对格式感到抱歉。我很想将其传输到Stack Overflow): 卡类: 玩家等级: 问题答案: 问题出在你的循环上 没有其他任何值可设置,因此此循环不断循环,直到所有玩家拥有超过52张牌为止。一旦某人拥