salve io dovrei fare questo esercizio.

per la ricerca di un valore: la funzione di ricerca di un valore deve restituire
un puntatore all'elemento dell'array contenente il valore cercato. nel caso
l'elemento non sia presente, deve restituire un puntatore a NULL;

ho scritto questo codice pero non funziona.
cosa ho sbagliato ?
grazie


#include <stdio.h>



void stampa(int*);
int ricerca (int, int*);

main(){
int arr[10];
int i;
int num_ric;
int *pa;
pa = arr;

int ric;
//immissione
printf("inserire gli elementi nell'array\n");
for(i=0; i<10;i++){

scanf("%d", &arr[i]);
}
stampa(arr);

//num da ricercare
printf("inserire un numero da ricercare\n");
scanf("%d", &num_ric);

ric = ricerca(num_ric, arr);
printf("%d", ric);

system("pause");
}

void stampa(int *a){
int i;
for(i=0; i<10;i++)
printf("%d\n", a[i]);

}

int ricerca(int a, int *b){
int i;
while (a!= *b && i<10)
i++;
if(a == b[i])
return (i);

else
return NULL;

}