В настоящее время я работаю над программой на java, чтобы заполнить 2D-массив введенными пользователем значениями. Программа отлично работает, когда строки и столбцы имеют одно и то же значение (квадратная матрица). Но когда значения отличаются, он не печатает и выбрасывает исключение индекса за пределами границ, и я не могу понять, почему. Я приложил свой код ниже. Заранее спасибо!
public static void main(String[] args) {
Scanner console = new Scanner (System.in);
int x; //columns
int y; //rows
System.out.println("Enter the number of rows of the matrix:");
y = console.nextInt();
System.out.println("Enter the number of columns of the matrix:");
x = console.nextInt();
int [][] matrix = new int [y][x];
fillMatrix(y, x, matrix);
}
public static void fillMatrix(int row, int col, int [][] matrix)
{
Scanner console = new Scanner (System.in);
int quantity = (row*col); //number of numbers in matrix
System.out.println("Please enter " + quantity + " integers separated by spaces:");
for(int cinput = 0; cinput < row; cinput++) //column
{
for(int rinput = 0; rinput < col; rinput++) //row
{
matrix[cinput][rinput] = console.nextInt(); //Read the line of integers to fill positions in the array.
}
}
System.out.println();
for(int i = 0; i < col; i++)
{
for(int j = 0; j < row; j++)
{
System.out.print(matrix[i][j] + " "); //Outputs the array in a xy grid.
}
System.out.println();
}
}