Devo fare la ricerca di un valore in un array ordinato con la Ricerca Uniforme. Il programma non mi funziona perchè non riesce a trovare un valore che gli do dentro cm x nell'array che in realtà c'è

codice:
#include <stdio.h>
#include <conio.h>

#define dmax 100

int RicUnif(int*,int,int,int);

int main(){
    int vett[dmax];
    int x,i,dim,ris;
    printf("Inserisci la dimensione del vettore: ");
    scanf("%d",&dim);
    for(i=0;i<dim;i++){
        printf("Inserisci elemento %d: ",i+1);
        scanf("%d",&vett[i]);
    }
    printf("Inserisci il valore che vuoi ricercare: ");
    scanf("%d",&x);
    ris=RicUnif(vett,x,0,dim-1);
    if(ris){
        printf("RIS: %d",ris);
    }else printf("NON TROVATO\n");
    getch();
    return 0;
}


int RicUnif(int *V,int a,int in,int fin){
    int x;
    if(in>=fin || a<V[in] || V[fin]<a || V[in]==V[fin])
       return in<=fin && in==V[in];
    else{
        x=in+(fin-in)*(in-V[in])/(V[fin]-V[in]);
        if(V[x]<a)
          in=x+1;
        else
          if(a<V[x])
             fin=x-1;
        else in=fin=x;
    return RicUnif(V,a,in,fin);
    }
}