Escrever a função int procura(int n, int v[], int x ) que retorna 1 se x está presente no vetor v (de n elementos) e retorna 0 , caso contrário. Utilizar a função procura para refazer o exercício 1 0 de modo que o vetor C não contenha valores repetidos.

Passo 1

O enunciado pede duas coisas: primeiro escrever uma função procura que recebe um inteiro n, um vetor v de tamanho n) e um valor x) e retorna 1 se x está em v ou 0 caso contrário; depois usar essa função para refazer o exercício 10 de modo que o vetor C não tenha valores repetidos (vamos assumir que o exercício 10 era simplesmente concatenar dois vetores A (tamanho n) e B (tamanho m) num vetor C).

Passo 2

Para montar a função procura a gente vai percorrer o vetor de 0 até n-1 e comparar cada elemento com (x): se encontrar, retorna 1; caso termine o laço sem encontrar, retorna 0.
Agora, para refazer o exercício 10 sem repetições, a ideia é: primeiro copiar todo o vetor A para C; depois percorrer B e, para cada elemento B[j], só copiar em C se procura(sizeAtual, C, B[j]) retornar 0. Assim garantimos que nenhum valor apareça duas vezes.

Passo 3

O algoritmo completo em C fica assim:
int procura(int n, int v[], int x) {
    for (int i = 0; i < n; i++) {
        if (v[i] == x) {
            return 1;
        }
    }
    return 0;
}

void refaz_ex10(int n, int A[], int m, int B[], int C[], int *pC_size) {
    int size = 0;
    // Copia A inteiro
    for (int i = 0; i < n; i++) {
        C[size++] = A[i];
    }
    // Adiciona B sem repetir
    for (int j = 0; j < m; j++) {
        if (procura(size, C, B[j]) == 0) {
            C[size++] = B[j];
        }
    }
    *pC_size = size;
}

Resposta

A função procura verifica existência linearmente, e a função refaz_ex10 usa procura para inserir em C todos os elementos de A e só os elementos de B que ainda não estiverem em C, garantindo vetores sem repetição.

Exercícios relacionados