Problème programme tableau
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:
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 :cry:
Je vous remercie d'avance.