si scusa.. allora... il codice compila correttamente... parte... non va in loop infinito ne nulla... semplicemente non trova l'elemento.... le 2 parti di codice li ho presi dalle 2 ricerche che ho implementato precedentemente e che funzionano.... ecco i codici:

Ricerca binaria:
codice:
int ricercaBinariaIterativa(int v[], int n, int x){
	int primo = 0;
	int ultimo = n - 1;
	
    while(primo <= ultimo){
		int m = (primo + ultimo) / 2;
        if (v[m] == x) return m; // elemento trovato!
        
		if(v[m] < x)
            primo = m + 1;
        else
            ultimo = m - 1;
   }

   return -1;
}
Ricerca Interpolata:
codice:
int ricercaInterpolata(int v[], int n, int x){
	int primo = 0;
	int ultimo = n - 1;
	
    while((v[ultimo] >= x) && (v[primo] < x)){
		int m = primo + ((ultimo - primo) * ((x - v[primo]) / (v[ultimo] - v[primo])));
        
		if (v[m] < x) primo = m + 1;
		else if(v[m] > x) ultimo = m - 1;
		else primo = m;
   }
	
	if(v[primo] == x) return primo;
	else return -1;
}