Faça um programa que leia dois vetores de 10 elementos. Crie um vetor que seja a união entre os 2 vetores anteriores, ou seja, que contém os números dos dois vetores. Não deve conter números repetidos.

Passo 1

O programa vai ler dois vetores de 10 elementos cada e construir um terceiro vetor contendo todos os valores dos dois vetores sem repetição.

Passo 2

Primeiro, definimos um vetor de união vazio (maior que 20 posições para garantir espaço) e mantemos um contador que indica quantos elementos já foram inseridos.
Em seguida, percorremos o primeiro vetor. Para cada elemento, fazemos uma busca linear no vetor de união para checar se ele já existe; se não existir, adicionamos no final e incrementamos o contador.
Depois, repetimos o mesmo procedimento para o segundo vetor: para cada valor, verificamos se já está na união e, se não estiver, inserimos no final.

Passo 3

Por fim, o vetor de união conterá todos os valores únicos dos dois vetores de entrada. Basta então imprimir seus elementos.

Resposta

#include <stdio.h>
int main() {
int v1[10], v2[10], uni[20];
int i, j, k = 0;
// Leitura dos dois vetores
for (i = 0; i < 10; i++) {
    printf("Digite v1[%d]: ", i);
    scanf("%d", &v1[i]);
}
for (i = 0; i < 10; i++) {
    printf("Digite v2[%d]: ", i);
    scanf("%d", &v2[i]);
}

// Inserir elementos do primeiro vetor na união
for (i = 0; i < 10; i++) {
    int existe = 0;
    for (j = 0; j < k; j++) {
        if (v1[i] == uni[j]) {
            existe = 1;
            break;
        }
    }
    if (!existe) {
        uni[k++] = v1[i];
    }
}

// Inserir elementos do segundo vetor na união
for (i = 0; i < 10; i++) {
    int existe = 0;
    for (j = 0; j < k; j++) {
        if (v2[i] == uni[j]) {
            existe = 1;
            break;
        }
    }
    if (!existe) {
        uni[k++] = v2[i];
    }
}

// Imprimir vetor de união
printf("\nVetor união (sem repetidos):\n");
for (i = 0; i < k; i++) {
    printf("%d ", uni[i]);
}
printf("\n");

return 0;
}

Exercícios relacionados