dite la verità vi stavate preoccupando di me perchè oggi non postavo nulla

oggi è una stupidaggine molto grossa!

codice:
#include <stdio.h>
#define dim 100

void leggivet (int a[], int n);
int ricercaRicorsiva (int a[], int inf, int sup, int x);

int main(){
    int a[dim], x, n, inf, sup;
    
    leggivet(a, n);
    
    printf("numero da ricercare = ");
    scanf("%d", &x);
    
    
printf("%d\n", ricercaRicorsiva (a, inf, sup, x));
    
system ("pause");
return 0;

}



void leggivet(int a[], int n){
     
     int i;
     
     printf("inserire dimensioni vettore (max %d) = ", dim);
     scanf("%d", &n);
     
     
     for(i=0;i<n;i++){
     printf("a[%d]= ", i);
     scanf("%d", &a[i]);
     }

}//fine leggivet

int ricercaRicorsiva (int a[], int inf, int sup, int x){
    
    int med;
    int trovato;
    
    if(inf>sup)
     trovato=0;
         else {
         med=(inf+sup)/2;
         if(x==a[med])
          trovato=1;
         if (x>a[med])
         trovato = ricercaRicorsiva(a, med+1, sup, x);
         else 
              trovato = ricercaRicorsiva(a, inf, med-1, x);
         }
return trovato;
}
come da titolo questo programma molto stupido, dovrebbe caricare un vettore a[dim] e cercare un valore in questo caso "x", se viene trovato deve restituirmi 1 altrimenti 0. Il mio problema è che mi da sempre 0. L'unica cosa che mi viene in mente è che il valore x per un qualche motivo non viene passato alla funzione "ricercaRicorsiva". Voi che mi dite?