Dichotomie recursive en c

tarik -  
 Hajar -
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;

}
Configuration: Linux Suse

3 réponses

  1. tarik
     
    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;
    }
    5
    1. Hajar
       
      Merci pour la reponse
      0