Bonjour,

pour commencer je suis débutant. comme ça c'est clair, hehe
j'ai essayé de faire un programme qui trie un tableau de trois valeurs diffèrentes de sorte a obtenir le drapeau hollandais.
La compilation se passe bien, mais il ne se passe rien quand je lance le programme et je ne trouve pas l'erreur (ou ce qui manque) dans le programme.

voici mon code:

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
#include <stdio.h>
 
 
#define bleu 0
#define blanc 1
#define rouge 2
#define n 20
 
 
typedef struct stableau {int t[n]} tableau;
 
 
 
void echanger (tableau p, int a, int b) /* je permute les cases a et b du tableau p */
{
	int c;
	c = p.t[a];
	p.t[a] = p.t[b];
	p.t[b] = c;
}
 
int main ()
{
	int i;tableau p;int nb_b;int nb_r;int j;int k;
	i = 0;nb_b = 0;nb_r = 0;
 
	for (j=0;j<=n;j++)  /*ici je rempli mon tableau*/
	{
		p.t[j]=random() %3;
	}
	while(i<=n) /* ds le while je trie */
	{
		if (p.t[i] == bleu)
		{
			echanger (p,i,nb_b);
			i++;
			nb_b++;
		}
		if (p.t[i] == blanc)
		{
			i++;
		}
		if (p.t[i] == rouge)
		{
			echanger (p,i,(n-1)+nb_r);
			i++;
			nb_r;;
		}
	}
	for (k = 0;k<=n;k++)  /* j'affiche mle tableau */
	{
		printf(" %d \n",p.t[k]);
	}
	return 0;
}

Quelqu'un peut-il me donner un tuyau ??

Merci d'avance