Fórum Ajuda com lógica de programação!!! #571472
23/11/2016
0
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.
Alguém pode me ajudar a resolver isso? :D
Alexandre Oliveira
Curtir tópico
+ 0Posts
24/11/2016
Marcio Souza
for(i = 0; i < NB; i++){ //armazenando os valores DO vetor B
C[i] = B[i];
}Você já adicionou os valores de A no array C.
Quando faz o for para B, está subscrevendo as primeiras posições do array C com os valores de B. Isto porque, você inicia o for na posição zero e deveria inicializar na posição seguinte aos elementos de A.
Gostei + 0
24/11/2016
Alexandre Oliveira
Mas o problema é que, não consigo encontrar um jeito de inicializar na seguinte posição dos elementos de A.
Gostei + 0
15/12/2016
Marcio Souza
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)