Intercalar colunas de duas matrizes em uma nova

0 respostas
java
M

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(<a href="http://System.in">System.in</a>);
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");	
    }
}

}

Criado 3 de dezembro de 2018
Respostas 0
Participantes 1