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

Ajuda em Vetor Intersecção


fabioh0891

Pergunta

Eae galera olha eu aki d novo... rsrs...

bom agora eu tenho a seguinte questão: Escreva uma função que receba como parâmetro dois vetores de dez números inteiros, determine e mostre o vetor intersecção entre eles.

bom tentei fazer com este código:

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

int vetor(int vet1[10], int vet2[10])
{
    int i;
    int j;
    int k;
    int vet3[10];
    for(i=0; i<10; i++)
       for(j=0; j<10; j++)
          if(vet1[j] == vet2[i])
          {
              vet3[k] == vet2[i];
              k++;
          } 
     return(vet2[i]);
}
main()
{
      int v1[10];
      int v2[10];
      int num[10];
      int i;
      int k;
      for(i=0; i<10; i++)
      {
      printf("Preenche o vetor X[%d]\n", i);
      scanf("%d",&v1[i]);
      printf("Preenche o vetor Y[%d]\n", i);
      scanf("%d",&v2[i]);
      }
      printf("A interseccao entre eles é: %d\n", vetor(v2[i]));
      system("pause");
}

só que da erro no último "printf" alguém pode me ajudar s eu errei em algo?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
A função vetor recebe dois INTs:

int vetor(int ..., int ...)

Mas no printf você tá passando apenas um:

printf("...", vetor(v2) )

Acho que o que você quer fazer é:

printf("A interseccao entre eles é: %d\n", vetor(v1, v2));

pois é amigo.. tinha errado ai mesmo... percebi antes mesmo d você falar... mas mesmo assim... acho q tem algo errado com o meu retorno porque só aparece 16038...

Link para o comentário
Compartilhar em outros sites

  • 0

É que no retorno da função vetor, você tá retornando apenas um elemento (vet2).

Veja se ajuda:

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

void vetor(int* vet1, int* vet2) {
    int i, j, k=0;
    int vet3[10];
    
    for(i=0; i<10; i++)
        for(j=0; j<10; j++)
            if(vet1[i] == vet2[j]) {
                vet3[k] = vet1[i];
                k++;
            }
    
    printf("A interseccao entre eles é: ");
    for(i=0; i<k; i++)
        printf("%d, ", vet3[i]);
}

int main() {
    int v1[10];
    int v2[10];
    int i;

    for(i=0; i<10; i++) {
        printf("Preenche o vetor X[%d]\n", i);
        scanf("%d",&v1[i]);
        printf("Preenche o vetor Y[%d]\n", i);
        scanf("%d",&v2[i]);
    }
    
    vetor(v1, v2);
    return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

Sobre o return 0:

Alguns usam "main() { ... }", outros usam "int main() { ... return 0; }"

Alguns compiladores aceitam o primeiro modo.

Todos os compiladores aceitam o segundo modo, que é "mais correto". Mas fica da sua escolha. Eu coloquei o int e o return senão meu compilador dá erro.

Sobre a função vetor:

Eu tomei a liberdade de mudar ela de int pra void, e incluí aquela parte de imprimir os números dentro da função mesmo, porque acho que ficou mais fácil de entender.

Ou seja, antes a função retornava um inteiro (quando na verdade você queria retornar um conjunto de inteiros?) e depois imprimia essa inteiro. Agora a função já faz isso tudo nela mesma, sem precisar retornar nada.

vetor(int vet1[10], int vet2[10]) é a mesma coisa que

vetor(int* vet1, int* vet2)

Um vetor/array é a mesma coisa de um ponteiro.

Por exemplo, se você declarar: int vetor[5];

O compilador entende que "vetor" é do tipo "int*".

Então você pode usar do outro jeito também, tanto faz... eu prefiro usar o int* pois fica mais fácil de lembrar.

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...