@fengz escreveu:
Intercalação é o processo utilizado para construir uma tabela ordenada, de tmanho n+m, a
partir de duas tabelas já ordenadas de tamanhos n e m. Por exemplo, a partir das tabelas:
A = |1|3|6|7|
e
B = |2|4|5|
construímos a tabela
C = |1|2|3|4|5|6|7|
Fazer um programa em java que:
a) leia NA. número de elementos do conjunto A(NA <= 100);
b) leia, em seguida, os elementos do conjunto A;
c) leia NB. número de elementos do conjunto B(NB <= 100);
d) leia, em seguida, os elementos do conjunto B;
e) crie e imprima um conjunto C, ordenado, de tamanho NA+NB, a partir de dos conjuntos originais A e B.Aqui está meu código,
import java.util.Scanner; public class E10 { public static void main(String[] args) { @SuppressWarnings("resource") Scanner reader = new Scanner(System.in); int i; System.out.println("Digite o *TAMANHO* do vetor A"); int NA = reader.nextInt(); int[] A = new int[NA]; for(i = 0; i < A.length; i++){ System.out.println("Digite os **ELEMENTOS** do vetor A"); A[i] = reader.nextInt(); } System.out.println("Digite o *TAMANHO* do vetor B"); int NB = reader.nextInt(); int[] B = new int[NB]; for(i = 0; i < NB; i++){ System.out.println("Digite os **ELEMENTOS** do vetor B"); B[i] = reader.nextInt(); } int TAM = NA+NB; int[] C = new int[TAM]; for(i = 0; i < NA; i++){ //armazenando os valores DO vetor A C[i] = A[i]; } for(i = 0; i < NB; i++){ //armazenando os valores DO vetor B C[i] = B[i]; } int aux = 0; //Inicialização da variável aux for(i = 0; i < C.length; i++){ //Ordenação for(int j = 0; j < C.length; j++){ if(C[i] < C[j]){ aux = C[i]; C[i] = C[j]; C[j] = aux; } } } for(i = 0; i < C.length; i++){ System.out.println("Os elementos C: " + C[i]); } } }
O problema que estou tendo é que quando entra no for de tamanho NB, ele substitui os valores já armazenados antes.
Como colocar novos elementos no mesmo vetor mas sem substituir os que já estão la?
Alguém pode me ajudar a resolver isso?
Mensagens: 2
Participantes: 2