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;
}