Salve ho il seguente esercizio:

Si realizzi un programma che riceve una matrice "a" ed un vettore "b" e restituisce true se ciascun elemento del vettore b è presente nella matrice a, false altrimenti.

io il codice l'ho fatto cosi:
[CODE]
# include <iostream>
using namespace std;
const int n=5;
bool verifica (int [][n], int []);
int main ()
{
int a[n][n]={{2,2,1,1,5},
{7,7,9,8,3},
{6,2,3,3,6},
{3,9,1,9,7},
{5,2,4,1,2}};

int b[n]={5,2,1,4,7};

if (verifica (a,b))
cout<<"verdadero";
else
cout<<"falso";


return 0;
}
bool verifica (int a[n][n], int b [n])
{
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
if (b[i]==a[i][j])
{
return true;
return false;
}
}
}
}

[/ CODE]

il debbugger mi dice:
esercizio 3b.cpp:36:2: warning: control reaches end of non-void function

anche se la compilazione mi dice ch'è corretta ce qualcosa che non va e non so dov'è il problema
grazie tante.