_FRanKAtzI_ Posted December 7, 2009 at 01:56 AM Report Share #299017 Posted December 7, 2009 at 01:56 AM Boas, tenho um exercício para resolver e não sei como o fazer, dai que se me puderem ajudar eu agradeço!! Bem o exercício é o seguinte: - o utilizador terá que introduzir o tamanho e o conteúdo de 2 vectores A e B; - estes poderão ter tamanhos diferentes, números repetidos e encontrarem-se desordenados; - o vector © resultante da intersecção dos vectores (A e 😞 terá que estar ordenado e sem elementos repetidos. Eu sou novato em programação, já fiz uma parte inicial do código, percebo e julgo que tenho bem delineado os passos a seguir para executar o exercício, o problema é implementar as idéias... O código que tenho é o seguinte: #include <iostream.h> using namespace std; int main() { int i,j,y; y=0; int n=4; int A[4]={1,2,3,4}; //numa primeira fase estou a trabalhar com os vectores definidos e ordenados... int B[4]={2,4,6,8}; int C[]={}; for(i=0; i<n; i++) //2 //4 //... for(j=0; j<n; j++) //1 //2 //3 //4 //1 //2 //3 //4 //... if(B[i]==A[j]){ //2=1 F //2=2 V //2=3 F //2=4 F //4=1 F //4=2 F //4=3 F //4=4 V //... C[y]=B[i]; //C[0]=2 //C[1]=4 cout<<C[y]<<endl; //So assim e que consigo ver que o programa esta a funcionar y++; //y=1 //y=2 } cout<<endl<<"Vector da interseccao de A com B \n"; //cout<<C<<endl; //Nao sei como mostrar o conteudo do vector... return 0; } Bem, quem me puder dar uma ajudinha, eu desde já agradeço!! 😉 Força João a.k.a. _FRanKAtzI_ Link to comment Share on other sites More sharing options...
TheDark Posted December 7, 2009 at 12:21 PM Report Share #299051 Posted December 7, 2009 at 12:21 PM O problema mais grave que vejo aí é estares a declarar C como um array de 0 elementos, e de seguida vais escrever nele. Alguns compiladores, senão todos, e sendo o da Miscrosoft um exemplo, não permitem sequer a declaração de arrays de tamanho 0. A maneira mais fácil de resolver é declarares o array C com tamanho igual ao do maior dos arrays que vais intersectar, uma vez que este tamanho nunca será excedido. Para teres o array C ordenado e sem repetições, de cada vez que vais inserir, percorres o vector C até encontrares um valor igual ou maior ao valor que queres inserir, e se o valor encontrado não for igual, copias os valores à direita dessa posição uma posição para a frente, e inseres o novo valor na posição correcta. Se forem iguais, não fazes nada. Para a tua dúvida de como mostrar o conteúdo de C, tens a resposta no teu código: copia o bloco de código do for interior, e remove todas as linhas menos a do cout, mudando, claro, a variável que serve de índice. Desaparecido. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now