Construa um programa que permita informar dados para 2 vetores inteiros de 10 posições e
apresente o conjunto união dos vetores. Lembrando que conjunto união são todos os elementos que
existem em ambos os vetores, mas sem repetição (cada número pode aparecer uma única vez no
resultado). (fonte: Forbelone)
Exemplo de entrada e saída:
Entrada: [4; 2; 20; 9; 10; 2; 5; 7; 5; 4] e [3; 1; 7; 8; 10; 9; 8; 4; 6; 9]
Saída: [4; 2; 20; 9; 10; 5; 7; 3; 1; 8; 6]
o resultado de saída nao precisa ser um vetor…
nel
Novembro 7, 2011, 11:31am
#3
E o que fizeste até agora, além de postar o exercício?
import java.util.Scanner;
public class Exercicio8 {
public static void main(String[] args) {
double[] vetor1 = new double[10];
double[] vetor2 = new double[10];
Scanner ler = new Scanner(System.in);
System.out.println("Insira o primeiro vetor de 10 números: " );
for (int cont = 0; cont < 10; cont++){
vetor1[cont] = ler.nextDouble();
}
System.out.println("Insira o segundo vetor de 10 números: " );
for (int cont2 = 0; cont2 < 10; cont2++){
vetor2[cont2] = ler.nextDouble();
}
System.out.println("A união dos vetores é: ");
estou travado aqui, na lógica da programação, estou pensando em usar uma combinação de for alguem me ajuda…
nel
Novembro 7, 2011, 12:05pm
#5
Fiz de forma bem simples:
public static void main(String[] args) {
int[] vet = new int[] {4, 2, 20, 9, 10, 2, 5, 7, 5, 4};
int[] vet1 = new int[] {3, 1, 7, 8, 10, 9, 8, 4, 6, 9};
int[] result = new int[10];
int pos = 0;
boolean exits = false;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (vet[i] == vet1[j]) {
for (int index = 0; index < 10; index++) {
if(result[index] == vet1[j]) {
exits = true;
break;
}
}
if(!exits) {
result[pos] = vet1[j];
pos++;
}
break;
}
}
}
System.out.println("Result: " + Arrays.toString(result));
Só usei Arrays para imprimir o resultado, mais nada.
Mas uma observação, na UNIÃO é exclusivamente valores que ocorram em ambos os conjuntos.
Forte abraço.