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' :
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;
        }
     }
}
Je pense avoir repérée l'erreur qui est dans la fonction insere.
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.