Ho innestato il ciclo while,nelle compilazione nn mi da errori,xò nn funziona lo stesso.cos'è il metodo ricorsivo?

#include<stdio.h>
void main()
{
int n=0;
int lista[]={1,2,3,4,5,6,7,8,9};
int media;
int posizione=-1;
int numero=3;
int ultimo=0;
int primo=0;
while (primo!=ultimo)
media=(primo+ultimo)/2;
if(lista[media]==numero){
posizione=media;
if (lista[media]>numero)
ultimo=media;
else
primo=media;
}
printf("%d",posizione);

}