Dichotomie recursive en c
tarik
-
Hajar -
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;
}
#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;
}
A voir également:
- Recherche dichotomique recursive
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse 4 - recherche google ✓ - Forum Réseaux sociaux
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Fréquence tnt recherche manuelle - Forum Téléviseurs
- Recherche photo - Guide
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;
}
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;
}
Hajar
Merci pour la reponse