bonjour, étant un petit nouveau dans la prog en C j'ai plusieurs questions, la première est celle-ci:
(j'utilise code block comme IDE)
le principe appliqué pour le tri est le suivant:
- prendre la première valeur du tableau
- la comparer à toutes les valeurs du tableau dont le pointeur est supérieur a celui de la valeur a comparer
- si une valeur inférieure existe, l'échanger de place avec la première
- répéter l'opération autant de fois que nécessaire pour que la plus petite valeur soit en premier
- refaire l'opération à partir de la deuxième valeur, puis de la troisième,...
pour assigner et trier des valeurs dans un tableau, j'ai créé ce code (ci-dessous), la partie de création du tableau et celle d'assignation initiale des valeurs fonctionnent, en revanche la partie de tri ne fonctionne pas,
en fait, une des assignation ne se fait pas, c'est la deuxième.
si quelqu'un a une idée, je veux bien parce que là, je sèche.
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 int main() { void imp_tab(int t[], int nb_elem) { int i; for (i = 0; i < nb_elem; i++) printf("%d ",t[i]); } { int size=1; int table[size]; int value = 0; int y = 0; int recup=0; int recup2=0; int res; printf("Entrez une valeur pour la taille : "); res = scanf("%i", &size); while(y<size) { printf("Entrez une valeur pour le rang %i : ",y); res = scanf("%i", &value); table[y]=value; y++; } //algo de tri (V) for (int o = 0; o < y-1; o++) { for (int r = o+1; r < y; r++) { recup=table[o]; recup2=table[r]; if (table[r]<table[o]) { table[r]=recup; table[o]=recup2;//l'assignation ne se fait pas } } } imp_tab(table,y); return 0; }
Partager