Mostrar junção de vetores

2 respostas
iew
Tenho que popular dois vetores de 15 posições (A e B) e mostrar num vetor (C) de 30 posições a junção do vetor A e B. Estou com dificuldade na hora de apresentar o resultado do vetor C. Alguém pode me dizer o que está errado no meu código:
import javax.swing.*;

public class Exercicio4 {
	public static void main(String[] args) {
		// Criando String de saída
		String mostra = "Valores do vetor C: \n";
		
		// Inicializando os vetores
		int [] A = new int[15];
		int [] B = new int[15];
		int [] C = new int[30];
		
		// Populando o vetor a
		
		for (int i = 0; i < A.length; i++) {
		String a = JOptionPane.showInputDialog(null, "Digite os valores de A["
			+ i + "]");
		A[i] = Integer.parseInt(a);
                                }
		
		// Populando o vetor B
                                for (int i = 0; i < B.length; i++) {
		String b = JOptionPane.showInputDialog(null, "Digite os valores de B["
			+ i + "]");
		B[i] = Integer.parseInt(b);
                                }    
        
                                // Montando vetor C
                                for (int i=0; i<=14; i++){
                                      C[i] = A[i];
                                     for ( i=15; i<=30; i++){
                	           C[i + 15] = B[i];
                                     }     
                                     mostra += "C[" + i + "] =" + C[i] "\n";                   
         }
         JOptionPane.showMessageDialog(null, mostra);
    }
}

2 Respostas

gpd38

Isso é muito simples, mas para ficar bonitinho vamos dizer:

[list]que vc queira o vetA na frente[/list]

import javax.swing.*;

public class Exercicio4 {

	public static void main(String[] args) {

        //codigo do vetA[] e vetB[]
        
       // Montando vetor C
       for (int i=0; i<C.length; i++){  
            if(i<C.length/2)
                C[i] = A[i]; 
                else
                    C[i] = B[i];
        }
    }
}

[list] Intercalando o A e B[/list]

import javax.swing.*;

public class Exercicio4 {

	public static void main(String[] args) {

        //codigo do vetA[] e vetB[]
        
       // Montando vetor C
       for (int i=0; i<C.length; i++){  
            if(i % 2 == 0)
                C[i] = A[i]; 
                else
                    C[i] = B[i];
        }
    }
}

[list]Em ordem crescente de A e B[/list]
Neste caso os vetore A e B tem que estar ordenados para poder ser mais facil

import javax.swing.*;

public class Exercicio4 {

	public static void main(String[] args) {

        //codigo do vetA[] e vetB[]
        
       // Montando vetor C
       for (int i=0; i<C.length; i++){  
            if(A[i] < B[i])
                C[i] = A[i]; 
                else
                    C[i] = B[i];
        }
    }
}

Não testei, por isso acho que pode dar ero, mas a logica seria essa.

iew
gpd38:
Isso é muito simples, mas para ficar bonitinho vamos dizer: [list]que vc queira o vetA na frente[/list]
import javax.swing.*;

public class Exercicio4 {

	public static void main(String[] args) {

        //codigo do vetA[] e vetB[]
        
       // Montando vetor C
       for (int i=0; i<C.length; i++){  
            if(i<C.length/2)
                C[i] = A[i]; 
                else
                    C[i] = B[i];
        }
    }
}

[list] Intercalando o A e B[/list]

import javax.swing.*;

public class Exercicio4 {

	public static void main(String[] args) {

        //codigo do vetA[] e vetB[]
        
       // Montando vetor C
       for (int i=0; i<C.length; i++){  
            if(i % 2 == 0)
                C[i] = A[i]; 
                else
                    C[i] = B[i];
        }
    }
}

[list]Em ordem crescente de A e B[/list]
Neste caso os vetore A e B tem que estar ordenados para poder ser mais facil

import javax.swing.*;

public class Exercicio4 {

	public static void main(String[] args) {

        //codigo do vetA[] e vetB[]
        
       // Montando vetor C
       for (int i=0; i<C.length; i++){  
            if(A[i] < B[i])
                C[i] = A[i]; 
                else
                    C[i] = B[i];
        }
    }
}
Não testei, por isso acho que pode dar ero, mas a logica seria essa.
Fiz conforme mostro abaixo e deu certo. De qualquer forma, agradeço a ajuda e por ter respondido a minha dúvida. Obrigada!!!
// Montando vetor C   
        for (int i=0; i<A.length; i++){     
              C[i] = A[i];
              C[i+15] = B[i];
        }
        
        // Lendo os valores de C
        
        for (int i=0; i<C.length; i++)
        	mostra += "C[" + i + "]=" + C[i] + "\n"; 
                 
        JOptionPane.showMessageDialog(null, mostra);
Criado 25 de abril de 2008
Ultima resposta 30 de abr. de 2008
Respostas 2
Participantes 2