Bonsoir/bonjour,
On me demande dans un devoir de faire un programme qui demande à l'utilisateur d'entrer des valeurs dans un tableau qui seraient rangée par ordre croissant.
En gros, si mon tableau est de taille 3 et que ses valeurs sont 2 5 7 9
Et que l'utilisateur rentre le nombre 6, le tableau possède ces valeurs (dans cet ordre): 2 5 6 7
J'espère avoir été clair.
Pour le moment j'ai fais 'ça' :
Je pense avoir repérée l'erreur qui est dans la fonction insere.
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 #include <conio.h> #include <stdio.h> #include <math.h> #include <string.h> #define N 10 void insere (int x, int *tab, int n); int main() { int i,a,nelt=0; int t[N]; for(i=0;i<=N;i++) t[i]=0; do{ printf("entrer un nombre entier (-1 pour quitter) : ");scanf("%d",&a); if(a!=-1){ insere(a,t,N); nelt=nelt++;} } while((a!=-1)&&(nelt<N)); printf("le tableau contient les elements suivants : "); for(i=0;(i<=N);i++){ printf(" %d ",t[i]);} getch(); } void insere (int x, int *tab, int n){ // x = a tab = t n = N int i,j; for(i=0;i<=n;i++){ if(tab[i]>=x){ for(j=n-1;j>=i;j--){ tab[j+1]=tab[j]; } tab[i]=x; } } }
Les valeurs du tableau étant toutes égales à 0 au début, la condition
if(tab[i]>=x)
ne peut jamais être vraie.
Malgré tout je ne vois pas comment résoudre ce problème
Je vous remercie d'avance.
Partager