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