Учитывая 2 матрицы, хранящиеся в 2 разных 2D массивах, вы должны распечатать произведение 2 матриц. Если умножение между ними невозможно, выведите Impossible
r1 c1: количество строк и столбцов первой матрицы, за которыми следует первая матрица
r2 c2: количество строк и столбцов второй матрицы, за которыми следует вторая матрица
Ниже приведен код для умножения двух матриц с использованием класса сканера, но он показывает следующую ошибку
Исключение в потоке "main" java .lang.ArrayIndexOutOfBoundsException: 13 at Main.main (Main. java: 40)
Тестовый случай неизвестен, но показывает вышеуказанную ошибку
import java.util.Scanner;
class Main{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
while(t--!=0)
{
int r1=sc.nextInt();
int c1=sc.nextInt();
int a[][]=new int[r1][c1];
for(int i=0;i<r1;i++)
{
for(int j=0;j<c1;j++)
{
a[i][j]=sc.nextInt();
}
}
int r2=sc.nextInt();
int c2=sc.nextInt();
int b[][]=new int[r2][c2];
int c[][]=new int[r1][c2];
for(int i=0;i<r2;i++)
{
for(int j=0;j<c2;j++)
{
b[i][j]=sc.nextInt();
}
}
if(c1==r2){
for(int i=0;i<r2;i++)
{
for(int j=0;j<c1;j++)
{
c[i][j]=0;
for(int k=0;k<r1;k++)
{
c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
}
System.out.print(c[i][j]+" ");
}
System.out.println();
}
}
else
System.out.println("Impossible");
}
}
}