bonjour,
Quand j'ai compilé ce code avec gcc le résultat de la variable indice que j'obtient et bizard ne donne pas un indice de tableau qui est compris dans cette exemple entre 0 et 5 j'ai pas compris c'est koi le problème, je crois pas que le problème est due de pointeur, aidé moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
#include<stdio.h>   // pour les fonctions d'entrée/sortie
#include<math.h>
 
#define TAILLE 5
#define DEBUG 0	
 
main()
{
	int i, indice;
	int t_6[] = {1, 4, 6, 8, 9};
 
	indice=tab_get_indice_insert(t_6, 9, 0, 4);
	printf ("\n l'infide est: %d\t\n",indice);	
}
// recherche dichotomique 
// moins complexe que la premiére car si le tableau et grand en gagne du temps
int tab_get_indice_insert(int t[], int val, int ind_deb, int ind_fin)
{
	int ind_mil= (ind_deb+ind_fin)/2;
	/*if(val = t[ind_mil])
		{
		 //printf("ind_mil=%d \t",ind_mil);
		 return ind_mil;		
		}
	*/
//	if(val != t[ind_mil]) //val != t[ind_mil] 
//		{ 
		  if(val<=t[ind_mil]) {
			if(ind_fin-ind_mil==0) {printf("\trani fi %d <= %d ind_mil=%d\n",val,t[ind_mil],ind_mil);return (ind_mil);}
			else {printf("\trani fi %d <= %d ind_mil=%d \n",val,t[ind_mil],ind_mil);tab_get_indice_insert(t,val,ind_deb,ind_mil);}}
			/*{printf("rani fi val < t[ind_mil]");
			 if (ind_mil-ind_deb==1) {//printf("ind_mil=%d \t",ind_mil); 
						  return ind_mil;
						}
 
 			tab_get_indice_insert(t,val,ind_deb,ind_mil);
			*/
		  else	{		//val > t[ind_mil]
			//printf("je suis la val > t[ind_mil]");
			if ((ind_fin-ind_mil==1)||(ind_fin-ind_mil==0)) {printf("\tje suis la %d > %d ind_mil=%d \n",val,t[ind_mil],ind_mil+1); 
							return (ind_mil+1);
						  }
			else {printf("\tje suis la %d > %d ind_mil=%d \n",val,t[ind_mil],ind_mil);tab_get_indice_insert(t,val,ind_mil,ind_fin);}
			}
//		}
 
//	if (DEBUG)
//		printf("tab_get_indice_insert ind_fin = %d\tindice = %d\n", ind_fin, i);	
}
Merci d'avance