Voila, comme le titre l'indique j'ai un p'tit souci dans mon programme.

C'est un programme qui doit, par dichotomie et récursivité, retrouver la position d'un nombre dans un tableau et l'afficher, pour cela, pas de pointeur, uniquement une fonction, mais je bloque, il y a surement des paramètres que j'écris mal car ça me donne une erreur de pile lors de l'affichage de l'emplacement du nombre dans le tableau, voici le programme:

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <stdio.h>
#include <math.h>
 
int dicho(int a, int b, int n, float tab[])
{
if(tab[a]==n)
return a;
if(tab[b]==n)
return b;
if(tab[b]>n)
{
tab[a]=tab[(a+b)/2];
tab[b]=tab[4];
dicho(a,b,n,tab);
}
if(tab[b]<n)
{
tab[b]=tab[(a+b)/2];
tab[a]=tab[0];
dicho(a,b,n,tab);
}
else
return 0;
}
 
main()
{
int x,i,j,k,l,m,n;
float leau[4];
 
printf("Entrer votre tableau de 4 nombres: ");
for(i=0;i<=3;i++)
{
scanf("%f",&leau[i]);
}
 
for(j=0;j<=3;j++)
    {
    for(k=0;k<=j;k++)
        {
        if(leau[j]<leau[k])
            {
            l=leau[j];
            m=leau[k];
 
            leau[j]=m;
            leau[k]=l;
            }
        }
    }
 
i=0;
 
for(i=0;i<=3;i++)
    {
    printf("Votre tableau croissant est: %f \n",leau[i]);
    }
 
printf("Entrer la valeur dont vous voulez la position: ");
scanf("%d",&n);
 
x=dicho(0,4,n,leau);
 
if(x>1)
{
x=x-1;
}else
x=1;
 
printf("Votre chiffre est a la position %d du tableau",x);
}
Pour la partie rentrage et triage du tableau ça marche, donc ça sert à rien de chercher une faute là-dedans, la faute est dans la fonction dicho.

Et voici l'erreur qui s'affiche:


Merci d'avance aux personnes qui sauront m'aider.