Fiz este exercício, porem esta apresentando alguns erros.
Faça um programa que leia dois vetores Q e R com 12 e 20 elementos inteiros (valores repetidos ou não) respectivamente e, determine o vetor W, onde W = Q ∩ R. Ao final, o programa deve mostrar o vetor W obtido, lembrando que ele não pode ter elementos repetidos.
importjava.util.Scanner;publicclassExercicio6{publicstaticvoidmain(String[]args){int[]q=newint[2];int[]r=newint[10];int[]w=newint[2];Scannerleitura=newScanner(System.in);System.out.println("Digite os valores do conjunto Q");for(inti=0;i<q.length;i++){System.out.println("Digite o valor");q[i]=leitura.nextInt();}System.out.println("Digite os valores do conjunto R");for(inti=0;i<r.length;i++){System.out.println("Digite o valor");r[i]=leitura.nextInt();}for(inti=0;i<q.length;i++){for(intf=0;f<r.length;f++){if(q[i]==r[f]){w[f]=q[i];}}}System.out.println("Valores do conjunto W");for(inti=0;i<w.length;i++){System.out.print(w[i]);System.out.print(" ");}}}
Fiz este exercício, porem esta apresentando alguns erros.
Faça um programa que leia dois vetores Q e R com 12 e 20 elementos inteiros (valores repetidos ou não) respectivamente e, determine o vetor W, onde W = Q ∩ R. Ao final, o programa deve mostrar o vetor W obtido, lembrando que ele não pode ter elementos repetidos.
Alguem pode ajudar… ???
Usar arrays é um porre, mas como o enunciaod diz “dois vetores” então pode usar Vector :twisted:
Vectorq=newVector();Vectorr=newVector();//codigosemelhanteaoseuparainiciarosvectores...q.retainAll(r); // a mantem apenas os elementos comuns a Q e R ou seja, Wreturnq; // o mesmo que w
rodrigoerocha
Desculpe a ignorância…
não intendi ainda
rs
sergiotaborda
rodrigoerocha:
Desculpe a ignorância....
não intendi ainda
rs
importjava.util.Scanner;publicclassExercicio6{publicstaticvoidmain(String[]args){finalintqCount=12;finalintrCount=20;Vector<Integer>q=newVector<Integer>();Vector<Integer>r=newVector<Integer>();Scannerleitura=newScanner(System.in);System.out.println("Digite os valores do conjunto Q");for(inti=0;i<qCount;i++){System.out.println("Digite o valor");q.add(leitura.nextInt());}System.out.println("Digite os valores do conjunto R");for(inti=0;i<rCount;i++){System.out.println("Digite o valor");r.add(leitura.nextInt());}// intesectaq.retainAll(r);System.out.println("Valores do conjunto W");for(inti=0;i<q.length;i++){System.out.print(q.get(i));System.out.print(" ");}}}
Estou usando vector por causa do enunciado que diz "leia dois vetores" e eu não quero usar array.
É claro que é um subterfugio, mas funciona.
O ideal é usar List ( com ArrayList), ou melhor ainda Set(com TreeSet). Mas com Set temos que ter mais cuidado no loop e é chato tb.
rodrigoerocha
Fiz aqui e ainda apresenta erro na hora de imprimir o resultado
import java.util.Scanner;
import java.util.Vector;
public class Ex {
public static void main(String[] args) {
final int qCount = 12;
final int rCount = 20;
Vector<Integer> q = new Vector<Integer>();
Vector<Integer> r = new Vector<Integer>();
Scanner leitura = new Scanner(System.in);
System.out.println("Digite os valores do conjunto Q");
for (int i = 0; i < qCount ; i++){
System.out.println("Digite o valor");
q.add(leitura.nextInt());
}
System.out.println("Digite os valores do conjunto R");
for (int i = 0; i < rCount ; i++){
System.out.println("Digite o valor");
r.add(leitura.nextInt());
}
// intesecta
q.retainAll(r);
System.out.println("Valores do conjunto W");
for (int i = 0; i < qCount; i++){
System.out.print(q.get(i));
System.out.print(" ");
}
}
}
rodrigoerocha
consegui resolver aqui;
valew
importjava.util.Scanner;publicclassExercicio6{publicstaticvoidmain(String[]args){int[]q=newint[12];int[]r=newint[20];int[]w=newint[12];booleanexiste;intcontW=0;Scannerleitura=newScanner(System.in);System.out.println("Digite os valores do conjunto Q");for(inti=0;i<q.length;i++){System.out.println("Digite o valor");q[i]=leitura.nextInt();}System.out.println("Digite os valores do conjunto R");for(inti=0;i<r.length;i++){System.out.println("Digite o valor");r[i]=leitura.nextInt();}for(inti=0;i<q.length;i++){//interseçãofor(intj=0;j<r.length;j++){if(q[i]==r[j]){//verifica se o elemento esta em Wexiste=false;for(intk=0;k<contW;k++){if(w[k]==q[i]){existe=true;}}if(existe==false){w[contW]=q[i];contW++;}}}}if(contW>0){System.out.println("Valores do conjunto W");for(inti=0;i<contW;i++){System.out.print(w[i]);System.out.print(" ");}}else{System.out.println("Não existe interseção");}}}