Boa tarde, desenvolvi um algoritmo mas estou tendo problemas na execução, já que algum vetor está estourando. Preciso intercalar os valores das colunas de duas matrizes em uma nova matriz. O que estou deixando passar? Desde já, muito obrigado!
import java.util.Scanner;
public class IntercalarColunas {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = (int)(Math.random() * 10) + 2;
int m = (int)(Math.random() * 10) + 2;
int p = (int)(Math.random() * 10) + 2;
System.out.println(n);
System.out.println(m);
System.out.println(p);
int x[][] = new int[n][m];
int y[][] = new int[n][p];
int z[][] = new int[n][m + p];
for( int i = 0; i < x.length; i++ ){
for( int j = 0; j < x[i].length; j++ ){
x[i][j] = (int)(Math.random() * 10);
}
}
for( int i = 0; i < y.length; i++ ){
for( int j = 0; j < y[i].length; j++ ){
y[i][j] = (int)(Math.random() * 10);
}
}
int q = 0, k = 0, t = 0, h = 0;
for( int i = 0; i < z.length; i++){
for( int j = 0; j < z[i].length; ){
if( q < m ){
z[i][j++] = x[q][k++];
}
if( t < p ){
z[i][j++] = y[t][h++];
}
}
t++;
q++;
k = 0;
h = 0;
}
System.out.println("\nVETOR X\n");
for( int i = 0; i < x.length; i++ ){
for( int j = 0; j < x[i].length; j++ ){
System.out.print(x[i][j] + " ");
}
System.out.print("\n");
}
System.out.println("\n\nVETOR Y\n");
for( int i = 0; i < y.length; i++ ){
for( int j = 0; j < y[i].length; j++ ){
System.out.print(y[i][j] + " ");
}
System.out.print("\n");
}
System.out.println("\n\nVETOR Z\n");
for( int i = 0; i < z.length; i++ ){
for( int j = 0; j < z[i].length; j++ ){
System.out.print(z[i][j] + " ");
}
System.out.print("\n");
}
}
}