Dichotomie recursive en c

Fermé
tarik - 3 juil. 2009 à 18:51
 Hajar - 26 déc. 2017 à 16:45
Bonjour, je ne vois pas où est le problème dans ce mini programme, il ne s execute pas, si une âme charitable veut bien m'aider à comprendre ce que je ne vois pas

#include<stdio.h>

int dich (int t[],int elem,int borninf,int bornsup){

int m=(borninf+bornsup) / 2 ;

if(t[m]==elem)
printf("elem se trouve à la %d ème position\n",m);

else{
if(elem<t[m])
return dich(t,elem,borninf,m-1);

else
return dich(t,elem,m+1,bornsup);

}
}
int main()
{
int t[14] ={15,20,23,24,25,26,30,45,55,66,67,68,77};
int borninf=0;
int bornsup=13;
int elem=68;

}

3 réponses

code qui marche, sinon je ne connais pas VB désolé
merci
#include<stdio.h>


int dich (int t[],int elem,int borninf,int bornsup){

int m=(borninf+bornsup) / 2 ;

if(t[m]==elem) {

return m;
}
else
if(elem<t[m])
return dich(t,elem,borninf,m-1);

else
return dich(t,elem,m+1,bornsup);


}




int main(void)
{

int t[] ={15,20,23,24,25,26,30,45,55,66,67,68,77};
int borninf=0;
int bornsup=13;
int elem=20;
int n=dich ( t, elem, borninf, bornsup);
printf("la position de elem est %i\n",n+1);

return 0;
}
4
Merci pour la reponse
0