Programação Imperativa

100 Questões Fichas Testes/Exames

Questão 36: comuns

Voltar

Defina uma função int comuns (int a[], int na, int b[], int nb) que calcula quantos elementos os vetores a (com na elementos) e b (com nb elementos) têm em comum. Assuma que os vetores a e b não estão ordenados e defina a função sem alterar os vetores.

Exemplo

> int a[6] = {2, 7, 4, 1, 6, 9};
> int b[5] = {6, 5, 8, 2, 9};
> comuns(a, 6, b, 5)
(int) 3

Resolução

int elem(int e, int *v, int N) {
    int i, ans = 0;
    for(i = 0; i < N && !ans; i++)
        if(e == v[i])
            ans = 1;
    return ans;
}

int comuns (int a[], int na, int b[], int nb) {
    int i, ans = 0;
    for(int i = 0; i < na; i++) {
        if(elem(a[i], b, nb)) ans++;
    }
    return ans;
}