Adrianled 0 Denunciar post Postado Setembro 30, 2008 Escrever um algoritmo que leia 2 vetores com 10 elementos cada um e os mostra. Considerando cada vetor como sendo um conjunto, crie um terceiro vetor que seja a intersecção dos dois primeiros e o mostre. como faço para separar apenas os valores iguais considerando a seguinte condição sendo os valores dentro de colchetes o elemento VetoA [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] VetoB [3] [2] [3] [7] [5] [7] [13] [12] [8] [7] nesse caso reparem que ha valores que aparecem + de 2 vezes e sendo a intersecção apenas os valores que tenho em ambos os conjuntos sem repetição, como resolver isso ? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Setembro 30, 2008 Faça um loop p/ percorrer o primeiro vetor e um loop interno p/ ver se existe a primeira ocorrencia no segundo vetor. Se existir,copie p/ o outro. Compartilhar este post Link para o post Compartilhar em outros sites
Victor. 0 Denunciar post Postado Setembro 30, 2008 Eu sei q você não pediu união,soma,produto,diferença mais olha ai completo e no final tem intersecção flws e ESTUDE MAIS. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif #include <stdio.h> #include <stdlib.h> int main() { // Declaracao de variaveis locais int x[10],y[10],u[10],d[10],s[10],p[10],it[10]; int i,j,k,cont_u,cont_d,cont_i; // Leitura dos vetores X,Y for(i=0;i<10;i++){ printf("x[%i]:",i+1); scanf("%i",&x[i]); } for(i=0;i<10;i++){ printf("y[%i]:",i+1); scanf("%i",&y[i]); } cont_u=0; cont_i=0; cont_d=0; for(i=0;i<10;i++){ j=0; while(j < cont_u && x[i]!= u[j]){ j=j+1; } if (j >= cont_u){ u[cont_u] = x[i]; cont_u=cont_u+1; } } for(i=0;i<10;i++){ j=0; while(j < cont_u && y[i]!= u[j]){ j=j+1; } if(j >= cont_u){ u[cont_u]=y[i]; cont_u=cont_u+1; } } printf("\nUNIAO:\n"); for(i=0;i<cont_u;i++){ printf(" %i ", u[i]); } for(i=0;i<10;i++){ j=0; while(x[i]!= y[j] && j < 10){ j=j+1; } if(j>=10){ k=0; while(k <= cont_d && x[i]!= d[k]){ k=k+1; } if(k >= cont_d){ d[cont_d] = x[i]; cont_d = cont_d + 1; } } } printf("\n DIFERENCA:\n "); for(i=0;i<cont_d;i++){ printf(" %i ", d[i]); } for(i=0;i<10;i++){ s[i]=x[i]+y[i]; p[i]=x[i]*y[i]; } printf("\nSOMA:\n"); for(i=0;i<10;i++){ printf(" %i " , s[i]); } printf("\nPRODUTO:\n"); for(i=0;i<10;i++){ printf(" %i " , p[i]); } for (i=0;i<10;i++) { j = 0; while (j < 10 && x[i] != y[j]) { j++; } if (j < 10) { k = 0; while (k < cont_i && it[k] != x[i]) { k++; } if (k >= cont_i) { it[cont_i] = x[i]; cont_i++; } } } printf("\n INTERSECCAO: \n"); for(i=0;i<cont_i;i++){ printf(" %i ", it[i]); } printf("\n\n\n\n\n\n"); system("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites
Adrianled 0 Denunciar post Postado Setembro 30, 2008 Valew. nossa tinha pensado de uma forma bem diferente obrigado e isso mesmo. Compartilhar este post Link para o post Compartilhar em outros sites