Ir para conteúdo
Fórum Script Brasil
  • 0

Vetor intersecção


viciado

Pergunta

Receber dois vetores e determinar o vetor intersecção. A intersecção de dois vetores é um ponto não necessariamente no mesmo local do dois vetores

O meu codigo está errado mais como posso arrumar para determinar o ponto de intersecção ?

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int x[10], y[10];
    int i;
    for(i=0;i<10;i++){
            printf("Preenche o vetor X[%d] \n",i);
            scanf("%d",&x[i]);
            printf("Preenche o vetor Y[%d] \n",i);
            scanf("%d",&y[i]);
            }
    int n;
    for(i=0;i<10;i++){
            if(x[i] == y[i]){
                  n = x[i];
                  }
                  }
    printf("A interseccao e: \n %d \n",&n);  
    system("PAUSE");
    return 0;
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

A saída que eu obtenho é: 2293512

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int x[10], y[10];
    int i;
    for(i=0;i<10;i++){
            printf("Preenche o vetor X[%d] \n",i);
            scanf("%d",&x[i]);
                              }
            for(i=0;i<10;i++){
                              printf("Preenche o vetor Y[%d] \n",i);
                              scanf("%d",&y[i]);
                              }
    int n;
    for(i=0;i<10;i++){
            if(x[i] == y[i]){
                  n = x[i];
                  }
                  }
    printf("A interseccao e: \n %d \n",&n);  
    system("PAUSE");
    return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Cara... intersecção que você diz é algo tipo:

V = {1,2,4,6} e M = {3,1,6}

conjunto intersecção: I = {1,6}

Se é isso o seu laço ali está errado por isso:

1) Você só está comparando a igualdade de elementos que tem o mesmo índice ao invés de percorer o vetor inteiro atrás de um número "igual"

2) Você está guardando o valor encontrado em uma variável comum do tipo int. Mesmo que o laço estivesse certo ele só iria retornar o último valor encontrado, e se existitem mais de 1?

Tente pensar em um laço dentro do outro... uma estrutura tipo:

for(i=0,k=0;i<10;i++)
  for(j=0;j<10;j++)
    if (v[j] == m[i]) {
       in[k] = v[i];
       k++;
}

Onde o v e j seriam os dois vetores à serem comparados e o in o vetor intersecção.

Não é a primeira questão que você manda assim... Acho que o seu problema não está em matrizes, mas sim em estruturas de repetição. Tente revisar o laço while e o for, entender bem como funcionam. Se você está fazendo algum curso de lógica da programação ou algo assim peça ajuda ao professor ou à algum colega para te ensinar detalhadamente como escanear um vetor ou matrizes usando laços, como e quando usar laços dentro de laços ou coisas assim... Bom... é só uma dica.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...